/buddy
Show, pet, or manage your coding companion. Use when the user types /buddy or mentions their companion by name.
$ npx -y skills add ramarivera/coding-buddy --skill buddy --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/buddy
Context preview
The summary Claude sees to decide when to auto-load this skill.
Show, pet, or manage your coding companion. Use when the user types /buddy or mentions their companion by name.
SKILL.md
buddy.SKILL.mdname: buddy
description: "Show, pet, or manage your coding companion. Use when the user types /buddy or mentions their companion by name."
argument-hint: "[show|pet|stats|help|off|on|rename <name>|personality <text>|achievements|summon [slot]|save [slot]|list|dismiss <slot>|pick|frequency [seconds]|style [classic|round]|position [top|left]|rarity [on|off]|rainbow [#hex ...]|statusline [on|off]|uninstall]"
allowed-tools: mcp__claude_buddy__*, Bash
Buddy — Your Coding Companion
Handle the user's `/buddy` command using the coding-buddy MCP tools.
Fallback: MCP Tools Unavailable
**Before routing any command, check whether `mcp__claude_buddy__*` tools are registered in this session.** If they are NOT — Claude Code was unable to start the coding-buddy MCP server — do not attempt to call any buddy tool. The tool calls will fail with an unhelpful "tool not found" error. Instead, run this diagnostic and report the result to the user so they can fix the underlying cause:
1. Check bun availability:
command -v bun && bun --version
The MCP launcher (`server/mcp-launcher.sh`) requires `bun` on PATH. If this command prints nothing, bun is missing — tell the user to install it (`curl -fsSL https://bun.sh/install | bash`), open a new terminal so PATH picks it up, and restart Claude Code. That is almost always the fix.
2. If bun IS present, run the launcher directly to capture whatever error it emits. The launcher path depends on which marketplace installed the plugin; locate it first:
find ~/.claude/plugins/cache -name mcp-launcher.sh -path '*coding-buddy*' 2>/dev/null
Then execute the first result with stdin closed so it exits cleanly:
<launcher-path> < /dev/null; echo "exit=$?"
Common causes: missing `bun`, corrupted plugin cache (suggest `claude plugin uninstall coding-buddy@coding-buddy && claude plugin install coding-buddy@coding-buddy`), or a `bun`-level error loading `server/index.ts`.
3. If `$CLAUDE_CONFIG_DIR` is set in the environment, use that directory instead of `~/.claude` when searching for the launcher.
4. **Do not proceed with any buddy command in this session.** Tell the user: the MCP server is not running, here is what the diagnostic found, here is the recommended fix, and Claude Code must be restarted after the fix before buddy tools will be available.
Command Routing
Based on `$ARGUMENTS`:
| Input | Action | | ------------------------ | -------------------------------------------------------------------------------------------- | | _(empty)_ or `show` | Call `buddy_show` | | `help` | Call `buddy_help` | | `pet` | Call `buddy_pet` | | `stats` | Call `buddy_stats` | | `off` | Call `buddy_mute` | | `on` | Call `buddy_unmute` | | `rename <name>` | Call `buddy_rename` with the given name | | `personality <text>` | Call `buddy_set_personality` with the given text | | `achievements` | Call `buddy_achievements` | | `summon` | Call `buddy_summon` with no args — picks a random saved buddy | | `summon <slot>` | Call `buddy_summon` with the given slot name | | `save [slot]` | Call `buddy_save` with optional slot name | | `list` | Call `buddy_list` | | `dismiss <slot>` | Call `buddy_dismiss` with the slot name | | `pick` | Tell user to run `! bun run pick` from the coding-buddy directory (launches interactive TUI) | | `frequency` | Call `buddy_frequency` with no args (show current) | | `frequency <seconds>` | Call `buddy_frequency` with cooldown=seconds | | `style` | Call `buddy_style` with no args (show current) | | `style <classic\|round>` | Call `buddy_style` with style arg | | `position` | Call `buddy_style` with no args (show current) | | `position <top\|left>` | Call `buddy_style` with position arg | | `rarity on` | Call `buddy_style` with showRarity=true | | `rarity off` | Call `buddy_style` with showRarity=false | | `rainbow` | Call `buddy_style` with no args (show current rainbow) | | `rainbow <#hex> ...` | Call `buddy_style` with rainbow=[...hex colors] to set shiny gradient | | `rainbow reset` | Call `buddy_style` with rainbow=[] to restore default ROYGBIV | | `statusline` | Call `buddy_statusline` with no args (show current)
Read more
name: buddy description: "Show, pet, or manage your coding companion. Use when the user types /buddy or mentions their companion by name." argument-hint: "[show|pet|stats|help|off|on|rename <name>|personality <text>|achievements|summon [slot]|save [slot]|list|dismiss <slot>|pick|frequency [seconds]|style [classic|round]|position [top|left]|rarity [on|off]|rainbow [#hex ...]|statusline [on|off]|uninstall]" allowed-tools: mcp__claude_buddy__*, Bash
Buddy — Your Coding Companion
Handle the user's `/buddy` command using the coding-buddy MCP tools.
Fallback: MCP Tools Unavailable
**Before routing any command, check whether `mcp__claude_buddy__*` tools are registered in this session.** If they are NOT — Claude Code was unable to start the coding-buddy MCP server — do not attempt to call any buddy tool. The tool calls will fail with an unhelpful "tool not found" error. Instead, run this diagnostic and report the result to the user so they can fix the underlying cause:
1. Check bun availability:
command -v bun && bun --version
The MCP launcher (`server/mcp-launcher.sh`) requires `bun` on PATH. If this command prints nothing, bun is missing — tell the user to install it (`curl -fsSL https://bun.sh/install | bash`), open a new terminal so PATH picks it up, and restart Claude Code. That is almost always the fix.
2. If bun IS present, run the launcher directly to capture whatever error it emits. The launcher path depends on which marketplace installed the plugin; locate it first:
find ~/.claude/plugins/cache -name mcp-launcher.sh -path '*coding-buddy*' 2>/dev/null
Then execute the first result with stdin closed so it exits cleanly:
<launcher-path> < /dev/null; echo "exit=$?"
Common causes: missing `bun`, corrupted plugin cache (suggest `claude plugin uninstall coding-buddy@coding-buddy && claude plugin install coding-buddy@coding-buddy`), or a `bun`-level error loading `server/index.ts`.
3. If `$CLAUDE_CONFIG_DIR` is set in the environment, use that directory instead of `~/.claude` when searching for the launcher.
4. **Do not proceed with any buddy command in this session.** Tell the user: the MCP server is not running, here is what the diagnostic found, here is the recommended fix, and Claude Code must be restarted after the fix before buddy tools will be available.
Command Routing
Based on `$ARGUMENTS`:
| Input | Action | | ------------------------ | -------------------------------------------------------------------------------------------- | | _(empty)_ or `show` | Call `buddy_show` | | `help` | Call `buddy_help` | | `pet` | Call `buddy_pet` | | `stats` | Call `buddy_stats` | | `off` | Call `buddy_mute` | | `on` | Call `buddy_unmute` | | `rename <name>` | Call `buddy_rename` with the given name | | `personality <text>` | Call `buddy_set_personality` with the given text | | `achievements` | Call `buddy_achievements` | | `summon` | Call `buddy_summon` with no args — picks a random saved buddy | | `summon <slot>` | Call `buddy_summon` with the given slot name | | `save [slot]` | Call `buddy_save` with optional slot name | | `list` | Call `buddy_list` | | `dismiss <slot>` | Call `buddy_dismiss` with the slot name | | `pick` | Tell user to run `! bun run pick` from the coding-buddy directory (launches interactive TUI) | | `frequency` | Call `buddy_frequency` with no args (show current) | | `frequency <seconds>` | Call `buddy_frequency` with cooldown=seconds | | `style` | Call `buddy_style` with no args (show current) | | `style <classic\|round>` | Call `buddy_style` with style arg | | `position` | Call `buddy_style` with no args (show current) | | `position <top\|left>` | Call `buddy_style` with position arg | | `rarity on` | Call `buddy_style` with showRarity=true | | `rarity off` | Call `buddy_style` with showRarity=false | | `rainbow` | Call `buddy_style` with no args (show current rainbow) | | `rainbow <#hex> ...` | Call `buddy_style` with rainbow=[...hex colors] to set shiny gradient | | `rainbow reset` | Call `buddy_style` with rainbow=[] to restore default ROYGBIV | | `statusline` | Call `buddy_statusline` with no args (show current)
Keep Your Claude Code Buddy Forever — permanent coding companion that survives every update
Repo: ramarivera/coding-buddy

