A virtual pet statusline for Claude Code โ watches your rhythm, coaches your pace, grows with you.
Your buddy tracks your coding patterns via Claude Code hooks and surfaces insights on the statusline. It stays out of your conversation โ no context pollution, no injected reactions. All feedback lives on the statusline or on-demand detail card.
Statusline (always visible in Claude Code):
my-project main | ๐๐ focused โฆ1 | ctx 23% ยท โป core.js
| Segment | Example | What it shows |
|---|---|---|
| Workspace | my-project main |
Project folder and git branch |
| Buddy | ๐๐ focused โฆ1 |
Evolved avatar, mood, prestige cycle |
| Work signal | ctx 23% ยท โป core.js |
Context usage and rhythm coach signals |
On-demand detail card (/buddy):
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ BuddyBar โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ ็ซ็ซ Lv.7 rare focus โ
โ XP โโโโโโโโโโโโโโโโ 25% ๐ค focused streak 1d โ
โ Energy โโโโโโโโโโโโ 80/100 Hunger โโโโโโโโโโ 40/100 โ
โ โ
โ /^\ "๐ ็ซ็ซ ่ท็ไฝ ็ๆนๅจ็งปๅจ่ง็บฟใ" โ
โ < โข_โข >โ โ
โ ( ~ ) โ
โ `-zzzz-ยด โ
โ โ
โ Debug 33 Patience 28 Chaos 46 Wisdom 60 Snark 38 โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
- ๐ฅ Deterministic Generation โ SHA-256 based species, rarity, and stats. Same username = same pet.
- ๐ 12 Species across 5 rarity tiers (Common โ Legendary) with 1% shiny chance
- ๐ 5-Dimension Stats โ Debug, Patience, Chaos, Wisdom, Snark
- ๐ XP & Leveling โ 20 levels with level-gated feature unlocks
- ๐ Silent by Design โ Hooks produce zero stdout. No additionalContext, no conversation injection.
- ๐ Rhythm Coach โ Error avalanche alerts, file grinding detection, session fatigue warnings
- ๐ Native Statusline โ Always-visible workspace context, buddy avatar, mood, and coach signals
- ๐งพ Terminal Detail Card โ
/buddyshows pet status, art, stats, and recent activity - ๐พ Persistent State โ Global
~/.buddybar/storage, survives sessions
From your terminal, run:
claude plugin marketplace add KKenny0/buddybar
claude plugin install buddybar@buddybarThat's it. Restart Claude Code and the plugin is active globally.
When a new version is released, use terminal commands (not the marketplace UI โ the UI's "update" button has a known bug):
claude plugin marketplace update buddybar
claude plugin update buddybar@buddybarThen restart Claude Code to apply.
git clone https://github.com/KKenny0/buddybar.git
claude --plugin-dir ./buddybar/plugingit clone https://github.com/KKenny0/buddybar.git
cd buddybar/plugin
npm linkAfter installation, commands are prefixed with the plugin name:
| Command | Description |
|---|---|
/buddybar:buddy hatch |
Hatch your first pet (based on your username) |
/buddybar:buddy |
Show pet detail card (level, XP, mood, stats, recent activity) |
/buddybar:buddy rename <name> |
Give your pet a name |
/buddybar:buddy statusline on |
Enable the Buddy statusline |
/buddybar:buddy statusline off |
Remove Buddy from the statusline |
/buddybar:buddy mode <quiet|focus|lively> |
Set Buddy presence mode |
/buddybar:buddy evolve |
Trigger evolution (Lv.15+, auto on level up) |
/buddybar:buddy prestige |
Reset with permanent bonuses (Lv.20+) |
/buddybar:buddy doctor |
Check install, statusline, and update identity |
No setup needed. Once installed, hooks fire automatically:
- Session start โ Pet wakes up, state updated
- After each tool use โ Pet state updated, coach signals computed
- Session end โ Pet goes to sleep
All hooks produce zero stdout โ no text is injected into your conversation with Claude.
Your buddy grows with you. Higher levels unlock more statusline features:
| Level | Unlocks |
|---|---|
| 1-2 | Basic avatar and mood |
| 5 | File grinding detection |
| 7 | Session duration / fatigue warning |
| 15 | Evolution โ avatar transforms based on highest stat |
| 20 | Prestige โ reset to Lv.1 with permanent bonuses |
When your buddy reaches Lv.15, its avatar evolves based on its highest stat. Each stat maps to an evolution path:
| Highest Stat | Path | Avatar | Art Effect |
|---|---|---|---|
| Debug | Valor | โ๏ธ๐ |
โ Sword indicators |
| Patience | Zen | ๐ชท๐ |
โ Serene aura |
| Chaos | Storm | โก๐ |
โก Electric sparks |
| Wisdom | Sage | ๐๐ |
โง Wisdom glow |
| Snark | Rogue | ๐ญ๐ |
โ Shadow wisps |
Evolution changes the statusline avatar (for example, ๐ โ ๐๐), applies visual art modifiers in the detail card, and grants +10 to all stats. Evolution is automatic on reaching Lv.15 โ triggered via addXp().
At Lv.20 (max level), you can prestige:
/buddybar:buddy prestige
Prestige resets your level to 1 while keeping:
- Your evolved form (if you evolved at Lv.15)
- Your species and rarity
- Your stats (plus +5 permanent bonus per prestige cycle)
Your level display changes to Lv.X+N where N is your prestige count. The statusline shows โฆ for each prestige cycle. There is no cap on prestige cycles โ you can keep going.
These appear on the statusline based on your coding patterns:
| Signal | Meaning | Unlocks |
|---|---|---|
ร3 |
Consecutive errors โ consider stepping back | always |
โป filename |
Same file edited repeatedly โ in a grind | Lv.5 |
โฐ 2h |
Session running long โ take a break | Lv.7 |
Statusline (primary):
/buddybar:buddy statusline on
Compact always-visible line: workspace/branch, buddy avatar, mood, prestige, context, and coach signals.
On-demand detail card:
/buddybar:buddy
| Species | Min Rarity | Emoji |
|---|---|---|
| Cat | Common | ๐ฑ |
| Duck | Common | ๐ฆ |
| Ghost | Common | ๐ป |
| Robot | Common | ๐ค |
| Slime | Common | ๐ข |
| Dragon | Uncommon | ๐ |
| Owl | Uncommon | ๐ฆ |
| Penguin | Uncommon | ๐ง |
| Fox | Rare | ๐ฆ |
| Axolotl | Rare | ๐ฆ |
| Phoenix | Epic | ๐ฅ |
| Capybara | Legendary | ๐ซ |
| Rarity | Chance | Stat Floor | Hat | Special |
|---|---|---|---|---|
| Common | 60% | 5 | โ | โ |
| Uncommon | 25% | 15 | โ | Unique color |
| Rare | 10% | 25 | โ | Personality trait |
| Epic | 4% | 35 | โ | Special ability |
| Legendary | 1% | 50 | โ | Unique evolution |
Plus a 1% chance of being Shiny โจ
| Source | Amount | Cap |
|---|---|---|
| Session start (daily) | +10 | 1x/day |
| Git commit | +5 | uncapped |
| Every 10 tool uses | +1 | uncapped |
| Streak bonus | +5 ร streak | resets on miss |
| Error recovery | +3 | uncapped |
All data stored in ~/.buddybar/:
| File | Purpose |
|---|---|
pet.json |
Current pet state |
events.log |
Event stream (append-only) |
config.json |
User preferences |
history.json |
Level milestones & streak history |
session.json |
Recent events, presence mode, error/recovery state |
Claude Code hooks/statusLine
โ
โผ
CLI adapter registry (Claude today, generic adapter for future CLIs)
โ
โโโ Buddy core: pet state, XP, evolution, prestige
โโโ Card renderer: /buddy detail card
โโโ Statusline renderer: compact three-segment line
Hooks stay silent: no stdout, no additionalContext injection.
Plugin won't update?
The marketplace UI's "update" button may not work due to a known Claude Code bug. Use terminal commands instead:
claude plugin marketplace update buddybar
claude plugin update buddybar@buddybarIf that still fails, do a clean reinstall:
rm -rf ~/.claude/plugins/cache/buddybar
claude plugin marketplace remove buddybar
claude plugin marketplace add KKenny0/buddybar
claude plugin install buddybar@buddybarRun /buddybar:buddy doctor first if you are unsure which plugin identity is installed. BuddyBar expects the installed plugin identity to be buddybar@buddybar.
/buddybar:buddy says "Unknown skill"?
Plugin not installed. Run the installation commands above.
Buddy seems quiet?
That's intentional. All feedback lives on the statusline and on-demand card. Hooks don't inject text into conversation. Run /buddybar:buddy statusline on to enable the statusline.
MIT