Summary
Currently, buddy identity is deterministically rolled from the user's Claude account UUID. This means your buddy never changes regardless of how you actually code.
This proposal adds a coding style layer that blends with the existing UUID-based roll to make the buddy reflect your real development habits — tools you reach for, session patterns, how chaotic vs methodical you are.
How It Works
The existing buddi-hook.py already receives every tool event (PreToolUse, PostToolUse, Stop, etc.). The idea is to accumulate lightweight stats from these events into a local file (~/.buddi_style.json) — no data ever leaves the machine.
Stats tracked:
- Tool usage breakdown (Bash, Read, Write, Grep, Edit, etc.)
- Total sessions and average session length
- Permission denial rate (chaos indicator)
- Tool diversity score
These stats are then hashed alongside the user ID to produce a style seed that shifts the buddy outcome:
| Coding pattern |
Influence |
| Bash-heavy / shell power user |
Boosts robot, dragon |
| Explorer (lots of Read/Grep) |
Boosts owl, octopus |
| High chaos (many denials, errors) |
Boosts ghost, blob |
| Methodical / clean (low chaos) |
Boosts turtle, penguin |
| Rare coder (few sessions) |
Boosts snail, cactus |
Rarity is also influenced — more sessions = higher legendary chance, rewarding active users.
Implementation
Pure Python addition to buddi-hook.py — no Swift changes required. The style stats accumulate silently in the background. On first launch (or after enough sessions), the style seed is computed and stored alongside the existing identity in ~/.buddi_style.json.
This is fully backward-compatible: if no style data exists, behavior is identical to today.
Why This Is Better
The original /buddy mechanic was pure UUID luck. This makes the buddy earned — it reflects how you actually work, making it more personal and meaningful.
Happy to submit a PR with the implementation if this direction sounds good!
Summary
Currently, buddy identity is deterministically rolled from the user's Claude account UUID. This means your buddy never changes regardless of how you actually code.
This proposal adds a coding style layer that blends with the existing UUID-based roll to make the buddy reflect your real development habits — tools you reach for, session patterns, how chaotic vs methodical you are.
How It Works
The existing
buddi-hook.pyalready receives every tool event (PreToolUse,PostToolUse,Stop, etc.). The idea is to accumulate lightweight stats from these events into a local file (~/.buddi_style.json) — no data ever leaves the machine.Stats tracked:
These stats are then hashed alongside the user ID to produce a style seed that shifts the buddy outcome:
robot,dragonowl,octopusghost,blobturtle,penguinsnail,cactusRarity is also influenced — more sessions = higher legendary chance, rewarding active users.
Implementation
Pure Python addition to
buddi-hook.py— no Swift changes required. The style stats accumulate silently in the background. On first launch (or after enough sessions), the style seed is computed and stored alongside the existing identity in~/.buddi_style.json.This is fully backward-compatible: if no style data exists, behavior is identical to today.
Why This Is Better
The original
/buddymechanic was pure UUID luck. This makes the buddy earned — it reflects how you actually work, making it more personal and meaningful.Happy to submit a PR with the implementation if this direction sounds good!