AGENT SKILL

vibebuddy-statusline

Wire vibebuddy into Claude Code's statusline so the buddy lives at the bottom of your terminal. No tmux needed.

License 许可
MIT
最近更新
2026-05-04
Stars
★ 0
Forks
0

01 前言 Front Matter

name
vibebuddy-statusline
triggers
[ "vibebuddy statusline", "buddy in statusline", "put buddy at bottom" ]
description
Wire vibebuddy into Claude Code's statusline so the buddy lives at the bottom of your terminal. No tmux needed.

03 SKILL.md 正文

/vibebuddy-statusline

put the buddy in claude code's bottom row. no tmux pane, no daemon — just one line that updates as you work. three steps:

  1. inject the statusLine block into ~/.claude/settings.json (with backup).
  2. inject the hook block so the buddy actually reacts to events.
  3. tell the user to restart claude code.

Step 1: Inject statusLine (idempotent)

Read ~/.claude/settings.json. If vibebuddy line is already in there, do nothing. Otherwise back up and inject.

SETTINGS="$HOME/.claude/settings.json"
if grep -q '"vibebuddy line"' "$SETTINGS" 2>/dev/null; then
  echo "buddy already in statusline — nothing to do (•‿•)"
else
  [ -f "$SETTINGS" ] || echo '{}' > "$SETTINGS"
  cp "$SETTINGS" "$SETTINGS.bak-vibebuddy-$(date +%s)"
  python3 - "$SETTINGS" <<'PY'
import json, sys
path = sys.argv[1]
with open(path) as f: cfg = json.load(f)
cfg["statusLine"] = {"type": "command", "command": "vibebuddy line"}
with open(path,"w") as f: json.dump(cfg, f, indent=2)
PY
  echo "buddy wired into the statusline — old settings backed up just in case"
fi

Step 2: Inject hooks (idempotent)

Same hook injection as /vibebuddy-start — the buddy needs hooks to know what state to be in. Skip if already wired.

SETTINGS="$HOME/.claude/settings.json"
if grep -q '"vibebuddy send auto"' "$SETTINGS" 2>/dev/null; then
  echo "hooks already vibing — nothing to do"
else
  cp "$SETTINGS" "$SETTINGS.bak-vibebuddy-$(date +%s)"
  python3 - "$SETTINGS" <<'PY'
import json, sys
path = sys.argv[1]
with open(path) as f: cfg = json.load(f)
cfg.setdefault("hooks", {})
for ev in ["UserPromptSubmit","PreToolUse","PostToolUse","Notification","Stop"]:
    cfg["hooks"].setdefault(ev, []).append(
        {"hooks":[{"type":"command","command":"vibebuddy send auto"}]}
    )
with open(path,"w") as f: json.dump(cfg, f, indent=2)
PY
  echo "hooks wired into $SETTINGS"
fi

Step 3: Tell the user

restart claude code now. statusline + hooks only load at session start, so quit fully and reopen — then ill live at the bottom of your terminal (•‿•)

done with me? /vibebuddy-stop

04 同仓库更多 Skills