Skip to content

KKenny0/buddybar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

70 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

BuddyBar ๐Ÿพ

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        โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Features

  • ๐Ÿฅš 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 โ€” /buddy shows pet status, art, stats, and recent activity
  • ๐Ÿ’พ Persistent State โ€” Global ~/.buddybar/ storage, survives sessions

Installation

Claude Code install (recommended)

From your terminal, run:

claude plugin marketplace add KKenny0/buddybar
claude plugin install buddybar@buddybar

That's it. Restart Claude Code and the plugin is active globally.

Update

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@buddybar

Then restart Claude Code to apply.

Manual setup

git clone https://github.com/KKenny0/buddybar.git
claude --plugin-dir ./buddybar/plugin

npm global

git clone https://github.com/KKenny0/buddybar.git
cd buddybar/plugin
npm link

Usage

In Claude Code

After 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

Hooks (automatic, silent)

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.

Level-Gated Unlocks

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

Evolution System (Lv.15)

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().

Prestige System (Lv.20)

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.

Rhythm Coach Signals

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

Presence Surfaces

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

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 System

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 โœจ

XP Sources

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

Data

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

Architecture

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.

Troubleshooting

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@buddybar

If 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@buddybar

Run /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.

License

MIT

About

๐Ÿพ A virtual pet statusline for Claude Code โ€” watches your rhythm, coaches your pace, grows with you.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors