buddybar

skill
Security Audit
Fail
Health Warn
  • No license รขโ‚ฌโ€ Repository has no license file
  • Description รขโ‚ฌโ€ Repository has a description
  • Active repo รขโ‚ฌโ€ Last push 0 days ago
  • Low visibility รขโ‚ฌโ€ Only 5 GitHub stars
Code Fail
  • fs.rmSync รขโ‚ฌโ€ Destructive file system operation in plugin/__tests__/core.test.js
  • fs module รขโ‚ฌโ€ File system access in plugin/__tests__/core.test.js
  • os.homedir รขโ‚ฌโ€ User home directory access in plugin/src/bin/buddy-core.js
  • process.env รขโ‚ฌโ€ Environment variable access in plugin/src/bin/buddy-core.js
  • fs module รขโ‚ฌโ€ File system access in plugin/src/bin/buddy-core.js
  • child_process รขโ‚ฌโ€ Shell command execution capability in plugin/src/bin/buddy-statusline.js
  • execSync รขโ‚ฌโ€ Synchronous shell command execution in plugin/src/bin/buddy-statusline.js
  • process.env รขโ‚ฌโ€ Environment variable access in plugin/src/bin/buddy-statusline.js
Permissions Pass
  • Permissions รขโ‚ฌโ€ No dangerous permissions requested
Purpose
This tool is a fun, virtual pet (Tamagotchi-style) plugin for the Claude Code CLI. It generates a unique companion based on your username that reacts to your coding activity and lives in your terminal via an ASCII statusline or tmux sidebar.

Security Assessment
Risk rating: High. The core application file heavily relies on Node.js's `child_process` module, utilizing synchronous shell command execution and process spawning. The plugin also accesses the user's home directory via `os.homedir`, reads environment variables, and performs destructive file system operations (`fs.rmSync`). While this appears to be a benign entertainment plugin, these are dangerous capabilities. A tool that reacts to your session activity and hooks should not require the ability to silently execute arbitrary shell commands or delete files.

Quality Assessment
The project is very new and lacks community validation, evidenced by a low star count and no license file. While the repository was updated recently and has a clear description, the absence of a license means you have no explicit legal permission to use, modify, or distribute the code. Given its early stage, you should expect potential bugs or breaking changes.

Verdict
Not recommended due to highly sensitive system permissions (shell execution, destructive file operations) inside an unvetted novelty plugin.
SUMMARY

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

README.md

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  ctx 23%  |  ๐Ÿ‰ ็ซ็ซ ยท focused ยท focus  |  Lv.7 30%  |  tests idle  |  โ†ป core.js

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, mood, mode, level, and coach signals
  • ๐Ÿงพ Terminal Detail Card โ€” /buddy shows pet status, art, stats, and recent activity
  • ๐Ÿ’พ Persistent State โ€” Global ~/.buddybar/ storage, survives sessions

Installation

One-line install (recommended)

In Claude Code, run:

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

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

Update

When a new version is released, use CLI commands (not the marketplace UI โ€” the UI's "update" button has a known bug):

/plugin marketplace update buddybar
/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+)

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 status (name, mood, XP progress)
3 Test status indicator (green/red)
5 File grinding detection
7 Session duration / fatigue warning
10 Session stats in statusline
13 Error pattern recognition
15 Evolution โ€” species transforms based on highest stat
20 Prestige โ€” reset to Lv.1 with permanent bonuses

Evolution System (Lv.15)

When your buddy reaches Lv.15, it evolves based on its highest stat. Each stat maps to an evolution path:

Highest Stat Path Label Art Effect
Debug Valor ๅ‹‡ โš” Sword indicators
Patience Zen ็ฆ… โ‰‹ Serene aura
Chaos Storm ้›ท โšก Electric sparks
Wisdom Sage ๆ™บ โœง Wisdom glow
Snark Rogue ๅฝฑ โ—‡ Shadow wisps

Evolution changes your species name (e.g., Dragon โ†’ ๆ™บ้พ™), applies visual art modifiers, 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
๐Ÿ”ด ร—3 3+ consecutive errors โ€” consider stepping back
โ†ป filename Same file edited 5+ times โ€” you're deep in a grind
โฑ 2h+ Session running long โ€” take a break
๐ŸŸข tests / ๐Ÿ”ด tests Last test run status

Presence Surfaces

Statusline (primary):

/buddybar:buddy statusline on

Compact always-visible line: workspace context, mood, level, XP%, 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 โ”€โ”€โ–ถ pet/session state files  โ”‚
โ”‚  (silent)     + events.log          โ”‚
โ”‚                                     โ”‚
โ”‚  /buddy โ”€โ”€โ–ถ buddy-core โ”€โ”€โ–ถ card     โ”‚
โ”‚  statusLine โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ one line  โ”‚
โ”‚                                     โ”‚
โ”‚  โœ— no stdout from hooks             โ”‚
โ”‚  โœ— 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 CLI commands instead:

/plugin marketplace update buddybar
/plugin update buddybar@buddybar

If that still fails, do a clean reinstall:

rm -rf ~/.claude/plugins/cache/buddybar
/plugin marketplace remove buddybar
/plugin marketplace add KKenny0/buddybar
/plugin install 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

Reviews (0)

No results found