[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71V1XW249V28F4BWQVRRAS5":3,"skill-same:01M71V1XW249V28F4BWQVRRAS5":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":42,"commitSha":43,"skillDirectory":5,"forksCount":14,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M71V1XW249V28F4BWQVRRAS5","vibebuddy-start",null,"Start the vibebuddy daemon and wire Claude Code hooks so the buddy reacts to your session. Idempotent — safe to re-run.","vansh0027\u002Fvibebuddy","vansh0027","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F98984294?v=4","01M71V19RPKH0YS4YWXCN097XD","Vansh Gupta","01M71V19SGRZXSTBS6RTSDN2ER",0,"MIT","https:\u002F\u002Fgithub.com\u002Fvansh0027\u002Fvibebuddy\u002Fblob\u002Fmain\u002Fvibebuddy-start\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"vibebuddy","vibebuddy start","start","idempotent","run","daemon","re","session","launch","safe","buddy","hooks","claude code hooks","code","2026-11-10 13:02:02",false,"---\nname: vibebuddy-start\ndescription: Start the vibebuddy daemon and wire Claude Code hooks so the buddy reacts to your session. Idempotent — safe to re-run.\ntriggers:\n  - start vibebuddy\n  - launch buddy\n  - turn on buddy\n---\n\n# \u002Fvibebuddy-start\n\nwake the buddy up. three steps:\n\n1. spawn the daemon in a tmux pane (or ask the user to).\n2. inject the hook block into `~\u002F.claude\u002Fsettings.json` (with backup).\n3. tell the user to restart claude code so the hooks take effect.\n\n## wait — what flavor?\n\n- `\u002Fvibebuddy-popup` — float in your terminal's corner (tmux 3.2+ or zellij needed). multi-line, prettier\n- `\u002Fvibebuddy-start` — regular tmux split (this one). always works\n- `\u002Fvibebuddy-statusline` — one-line buddy at the bottom. no tmux needed\n\n## Step 1: Spawn the daemon\n\n```bash\nif pgrep -f \"vibebuddy run\" >\u002Fdev\u002Fnull 2>&1; then\n  echo \"im already here (̄ヘ ̄)\"\nelif [ -n \"${TMUX:-}\" ]; then\n  tmux split-window -h -p 25 'vibebuddy run'\n  echo \"*pop* hi! buddy is here (•‿•)\"\nelse\n  echo \"psst — open a tmux pane and run \\`vibebuddy run\\` so i have somewhere to live\"\n  echo \"  (then re-run \u002Fvibebuddy-start and ill wire the hooks)\"\nfi\n```\n\n## Step 2: Inject hooks (idempotent)\n\nRead `~\u002F.claude\u002Fsettings.json`. If the `hooks` key already contains\n`vibebuddy send auto`, do nothing. Otherwise back up and inject.\n\n```bash\nSETTINGS=\"$HOME\u002F.claude\u002Fsettings.json\"\nif grep -q '\"vibebuddy send auto\"' \"$SETTINGS\" 2>\u002Fdev\u002Fnull; then\n  echo \"hooks already vibing — nothing to do\"\nelse\n  cp \"$SETTINGS\" \"$SETTINGS.bak-vibebuddy-$(date +%s)\"\n  python3 - \"$SETTINGS\" \u003C\u003C'PY'\nimport json, sys\npath = sys.argv[1]\nwith open(path) as f: cfg = json.load(f)\ncfg.setdefault(\"hooks\", {})\nfor ev in [\"UserPromptSubmit\",\"PreToolUse\",\"PostToolUse\",\"Notification\",\"Stop\"]:\n    cfg[\"hooks\"].setdefault(ev, []).append(\n        {\"hooks\":[{\"type\":\"command\",\"command\":\"vibebuddy send auto\"}]}\n    )\nwith open(path,\"w\") as f: json.dump(cfg, f, indent=2)\nPY\n  echo \"hooks wired into $SETTINGS — old settings backed up just in case\"\nfi\n```\n\n## Step 3: Tell the user\n\n> **restart claude code now.** hooks only load at session start, so quit fully and reopen — then ill react to every tool call (•‿•)\n>\n> done with me? `\u002Fvibebuddy-stop`\n","# \u002Fvibebuddy-start\n\nwake the buddy up. three steps:\n\n1. spawn the daemon in a tmux pane (or ask the user to).\n2. inject the hook block into `~\u002F.claude\u002Fsettings.json` (with backup).\n3. tell the user to restart claude code so the hooks take effect.\n\n## wait — what flavor?\n\n- `\u002Fvibebuddy-popup` — float in your terminal's corner (tmux 3.2+ or zellij needed). multi-line, prettier\n- `\u002Fvibebuddy-start` — regular tmux split (this one). always works\n- `\u002Fvibebuddy-statusline` — one-line buddy at the bottom. no tmux needed\n\n## Step 1: Spawn the daemon\n\n```bash\nif pgrep -f \"vibebuddy run\" >\u002Fdev\u002Fnull 2>&1; then\n  echo \"im already here (̄ヘ ̄)\"\nelif [ -n \"${TMUX:-}\" ]; then\n  tmux split-window -h -p 25 'vibebuddy run'\n  echo \"*pop* hi! buddy is here (•‿•)\"\nelse\n  echo \"psst — open a tmux pane and run \\`vibebuddy run\\` so i have somewhere to live\"\n  echo \"  (then re-run \u002Fvibebuddy-start and ill wire the hooks)\"\nfi\n```\n\n## Step 2: Inject hooks (idempotent)\n\nRead `~\u002F.claude\u002Fsettings.json`. If the `hooks` key already contains\n`vibebuddy send auto`, do nothing. Otherwise back up and inject.\n\n```bash\nSETTINGS=\"$HOME\u002F.claude\u002Fsettings.json\"\nif grep -q '\"vibebuddy send auto\"' \"$SETTINGS\" 2>\u002Fdev\u002Fnull; then\n  echo \"hooks already vibing — nothing to do\"\nelse\n  cp \"$SETTINGS\" \"$SETTINGS.bak-vibebuddy-$(date +%s)\"\n  python3 - \"$SETTINGS\" \u003C\u003C'PY'\nimport json, sys\npath = sys.argv[1]\nwith open(path) as f: cfg = json.load(f)\ncfg.setdefault(\"hooks\", {})\nfor ev in [\"UserPromptSubmit\",\"PreToolUse\",\"PostToolUse\",\"Notification\",\"Stop\"]:\n    cfg[\"hooks\"].setdefault(ev, []).append(\n        {\"hooks\":[{\"type\":\"command\",\"command\":\"vibebuddy send auto\"}]}\n    )\nwith open(path,\"w\") as f: json.dump(cfg, f, indent=2)\nPY\n  echo \"hooks wired into $SETTINGS — old settings backed up just in case\"\nfi\n```\n\n## Step 3: Tell the user\n\n> **restart claude code now.** hooks only load at session start, so quit fully and reopen — then ill react to every tool call (•‿•)\n>\n> done with me? `\u002Fvibebuddy-stop`\n",{"name":5,"triggers":38,"description":7},[39,40,41],"start vibebuddy","launch buddy","turn on buddy","main","fb27b3a1d3079c9f9f5dc005693fc8ca63d5cac1","https:\u002F\u002Fgithub.com\u002Fvansh0027\u002Fvibebuddy","https:\u002F\u002Fgithub.com\u002Fvansh0027","2026-05-04 12:30:23",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add vansh0027\u002Fvibebuddy --skill vibebuddy-start",{"tool":53,"command":54},"bunx","bunx skills add vansh0027\u002Fvibebuddy --skill vibebuddy-start",{"tool":56,"command":57},"pnpm","pnpm dlx skills add vansh0027\u002Fvibebuddy --skill vibebuddy-start","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fvansh0027\u002Fvibebuddy\u002Fblob\u002Fmain\u002Fvibebuddy-start\u002FSKILL.md",true,[],[62,77,97,110,122,136],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":33},"01M71V26KQ68QH38BTFAVZAHJ0","vibebuddy-upgrade","Upgrade vibebuddy to the latest version (git pull + rebuild).","https:\u002F\u002Fgithub.com\u002Fvansh0027\u002Fvibebuddy\u002Fblob\u002Fmain\u002Fvibebuddy-upgrade\u002FSKILL.md",[],[69,19,70,71,72,73,74,75,76,29],"upgrade","vibebuddy upgrade","latest","pull","git","version","update","rebuild",{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":88,"publishedAt":33},"01M71V24MSXG7MZJR20FR45BB6","vibebuddy-theme","Switch the vibebuddy mascot theme (slime, cat, robot — v0.2).","https:\u002F\u002Fgithub.com\u002Fvansh0027\u002Fvibebuddy\u002Fblob\u002Fmain\u002Fvibebuddy-theme\u002FSKILL.md",[83],{"categoryNo":84,"categoryName":85,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",[89,90,19,29,91,92,93,94,95,96],"theme","vibebuddy theme","change","slime","cat","robot","v0","switch",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":33},"01M71V22RJHJGP705DPBT8DR3P","vibebuddy-stop","Stop the vibebuddy daemon and remove its Claude Code hooks. Clean teardown.","https:\u002F\u002Fgithub.com\u002Fvansh0027\u002Fvibebuddy\u002Fblob\u002Fmain\u002Fvibebuddy-stop\u002FSKILL.md",[],[104,105,19,106,32,107,31,108,109,24,29,30],"stop","vibebuddy stop","kill","clean","teardown","remove",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":33},"01M71V205BAQ1Q6XZEQ168SSP9","vibebuddy-statusline","Wire vibebuddy into Claude Code's statusline so the buddy lives at the bottom of your terminal. No tmux needed.","https:\u002F\u002Fgithub.com\u002Fvansh0027\u002Fvibebuddy\u002Fblob\u002Fmain\u002Fvibebuddy-statusline\u002FSKILL.md",[],[117,118,19,119,120,32,29,121],"vibebuddy statusline","statusline","at","terminal","tmux",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":33},"01M71V1VV97GTMVAZH2PVXA00D","vibebuddy-scene","Set, preview, or disable the buddy's environment fx (bubbles, motion, sparkles).","https:\u002F\u002Fgithub.com\u002Fvansh0027\u002Fvibebuddy\u002Fblob\u002Fmain\u002Fvibebuddy-scene\u002FSKILL.md",[],[129,19,130,131,132,133,134,135,29],"vibebuddy scene","SET","motion","disable","preview","environment","fx",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":33},"01M71V1SR7T7DPZ4MKZV8DFBQ9","vibebuddy-recap","Show what just happened — local counters from Claude Code hooks. Zero tokens.","https:\u002F\u002Fgithub.com\u002Fvansh0027\u002Fvibebuddy\u002Fblob\u002Fmain\u002Fvibebuddy-recap\u002FSKILL.md",[],[143,19,144,145,146,147,148,32,31,149,30,26],"vibebuddy recap","recap","tokens","just","ZeRO","show","local"]