AGENT SKILL

vibebuddy-start

Start the vibebuddy daemon and wire Claude Code hooks so the buddy reacts to your session. Idempotent — safe to re-run.

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

01 前言 Front Matter

name
vibebuddy-start
triggers
[ "start vibebuddy", "launch buddy", "turn on buddy" ]
description
Start the vibebuddy daemon and wire Claude Code hooks so the buddy reacts to your session. Idempotent — safe to re-run.

03 SKILL.md 正文

/vibebuddy-start

wake the buddy up. three steps:

  1. spawn the daemon in a tmux pane (or ask the user to).
  2. inject the hook block into ~/.claude/settings.json (with backup).
  3. tell the user to restart claude code so the hooks take effect.

wait — what flavor?

  • /vibebuddy-popup — float in your terminal's corner (tmux 3.2+ or zellij needed). multi-line, prettier
  • /vibebuddy-start — regular tmux split (this one). always works
  • /vibebuddy-statusline — one-line buddy at the bottom. no tmux needed

Step 1: Spawn the daemon

if pgrep -f "vibebuddy run" >/dev/null 2>&1; then
  echo "im already here (̄ヘ ̄)"
elif [ -n "${TMUX:-}" ]; then
  tmux split-window -h -p 25 'vibebuddy run'
  echo "*pop* hi! buddy is here (•‿•)"
else
  echo "psst — open a tmux pane and run \`vibebuddy run\` so i have somewhere to live"
  echo "  (then re-run /vibebuddy-start and ill wire the hooks)"
fi

Step 2: Inject hooks (idempotent)

Read ~/.claude/settings.json. If the hooks key already contains vibebuddy send auto, do nothing. Otherwise back up and inject.

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 — old settings backed up just in case"
fi

Step 3: Tell the user

restart claude code now. hooks only load at session start, so quit fully and reopen — then ill react to every tool call (•‿•)

done with me? /vibebuddy-stop

04 同仓库更多 Skills