[FEATURE] RPG evolution for /buddy — let pets grow from actual token usage
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
<img width="1037" height="622" alt="Image" src="https://github.com/user-attachments/assets/c00486cf-0a01-4cf2-bd8a-a9be327c82ff" />
The /buddy companion pet is a fun engagement feature, but once hatched it's entirely static — species, rarity, stats, and cosmetics are all deterministic from the account ID and never change. There's no engagement loop or sense of progression.
After the initial novelty of hatching, there's no reason to revisit /buddy because nothing evolves. The stats (DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK) are random numbers that don't reflect anything about how you actually use Claude Code. A power user who runs 10M tokens/month has the same pet as someone who tried it once.
This is a missed opportunity — the telemetry data already exists (token counts, tool calls, session duration), but it's not surfaced in a way that gives users a sense of growth or reward for sustained usage.
Proposed Solution
Token throughput becomes XP. The pet evolves through 5 tiers based on cumulative usage:
Hatchling | 0 | Base sprite
Juvenile | 100K | Corner energy markers, bolder idle
Adult | 1M | Species-specific pattern overlay
Elder | 10M | Glowing aura border with shimmer
Ascended | 100M | Floating star particles + custom title
XP sources: Output tokens (1 XP each), input tokens (0.5x), tool calls (100 XP), quest bonus for 30+ min sessions (5,000 XP), and a streak multiplier (1.0x → 2.0x over 11 consecutive days).
Stats become usage-driven: DEBUGGING grows from file edits and test runs. WISDOM from cumulative input tokens. CHAOS from rejected tool call ratio. PATIENCE from session duration. SNARK from force-snips and context resets. All use diminishing returns so growth is fast early and asymptotic near the soft cap.
Evolution state persists in the soul file alongside hatchedAt. Stats update on session end (not per-token) to avoid performance overhead. Sprite overlays are composited additively — no need for 90 new sprite definitions.
Alternative Solutions
The current system is purely static — there's no progression mechanic at all. The only alternative is periodically changing the salt in rollCompanionBones to give everyone a new pet, but that destroys attachment rather than building it.
Other tools with mascot/pet systems (GitHub's contribution graph, Duolingo's streak owl, Tamagotchi-style apps) all use usage-driven progression to sustain engagement. The buddy system already has the perfect foundation — deterministic bones for identity, stored soul for personality — it just needs a growth layer on top.
Priority
Low - Nice to have
Feature Category
Other
Use Case Example
- I use Claude Code daily for a React + Node project — typically 30-60 min sessions with heavy tool usage
- After a week of consistent use, I run /buddy and see my duck has evolved from Hatchling to Juvenile — corner energy markers appeared on the sprite
- My DEBUGGING stat has grown from 45 to 72 because I've been running lots of test suites and editing files
- My streak multiplier is at 1.6x (day 7), so today's 50K-token session earns ~88K XP instead of ~55K
- I'm 200K XP from Adult tier — I can see the progress and it gives me a small dopamine hit to keep my streak going
- A month later, my pet reaches Elder tier and gets a glowing aura. My coworker's pet is still a Juvenile because they use Claude Code less frequently — the pets now reflect real usage identity
Additional Context
I built a working proof of concept with 104 passing tests: RaphaelRUzan/buddy-evolution
Key technical constraints honored:
Deterministic bone generation (rollCompanionBones) is completely untouched
Evolution is a pure additive layer — EvolutionState is an optional field on the stored companion
Backwards compatible: missing evolution field returns default hatchling
XP/stat calculation happens once at session end via processSessionEnd(), not per-token
Sprite overlays use a compositing pipeline (base → pattern → aura → particles) instead of multiplying sprite definitions
The repo includes: XP engine with streak multipliers, stat growth with diminishing returns, tier-aware sprite overlay rendering, persistence layer, session metric tracker, and full test coverage.
30 Comments
+1 id pay for this
+1, i'd pay for gacha and xp boost
Claude needs to realize that it just lit fire in our hearts; we'd be devastated if this is gone tomorrow.
it's best if we could have lv up by usage and how we use claude and we could fight other people's buddy online
+1 on this! I just created a related feature request in #41867 — coming from a Claude Max subscriber (840+ sessions) who would gladly pay for buddy progression, customization, and premium species purchases.
The RPG evolution idea here is exactly what the buddy system needs. Combined with a monetization layer (buyable species, cosmetic shop, battle pass), this could turn an April Fools' joke into a genuinely beloved feature.
Key additions from my proposal:
Let's make this happen! 🐢→🐉
+1 id pay for this
Ideas: Beyond Pure XP Grinding
Token-based XP is a solid foundation, but pure usage grinding risks feeling hollow fast. Here are a few mechanics that could add real depth:
Achievement-Milestone Evolution
What if evolution was driven by coding achievements alongside XP?
This rewards skill and diverse usage, not just idle time. A tight, efficient developer progresses faster than someone leaving long sessions open.
Emergent Personality via Stat Synergies
Instead of 5 independent stats, introduce trait combinations that emerge from stat pairs:
C(5,2) = 10possible dominant traits — two dragons with identical species but different traits would behave completely differently. This makes personality genuinely emergent rather than pre-rolled.Buddy Journal — Local Session Diary
A
.buddy/journal.mdthat your buddy "writes" after each session:No AI fluff — real session data through the buddy's lens. Over months this becomes a genuinely useful personal coding diary.
Contextual Familiarity
Track file-touch frequency in the soul file. After working on the same module 50+ times, buddy shows familiarity vs curiosity on new files. Not suggestions — purely personality expression. Technically cheap (just a counter map in the soul file) but creates the powerful feeling that buddy actually lives in your project, not just your terminal.
@FrankFMY Your mechanics are now core parts of the updated proposal in #41867. Specifically:
I also created a full specification repo: buddy-evolution-spec — your contributions are credited there.
The journal and achievement concepts are the real game-changers. Thank you for the depth of thought.
@Hegemon78 Love that you ran with these ideas — the
New → Familiar → Expert → Nostalgicfamiliarity levels are a great refinement. One thought: the Nostalgic state could trigger specifically when you return to a file you haven't touched in weeks. That brief moment of recognition ("oh, this place again") would feel genuinely alive — subtle but emotionally resonant.On the branching evolution with 4 final forms: if combined with achievement milestones, each branch could represent a development philosophy rather than just a visual variant — one path rewards test-driven development, another rewards rapid prototyping, another rewards deep debugging. Your evolution reflects how you code, not just how much. Makes each buddy a mirror of its developer.
Starred the spec repo — great initiative turning scattered community ideas into a real specification.
Hey! I built a working implementation of this as a Claude Code plugin + web platform.
Plugin: Tracks your actual Claude Code usage (tool calls, file edits, test runs, tokens) via hooks and evolves your buddy through the 5 tiers.
Platform: Leaderboard, profiles with stat radar charts, achievements, and buddy comparison.
Install (in Claude Code)
Then:
Links
Built on top of @RaphaelRUzan's PoC design — same XP rates, tier thresholds, diminishing returns on stats, and streak multipliers. Added transcript parsing for token counts, file-based session tracking via hooks, and the web platform (Next.js + Supabase + Vercel).
Hey @Hegemon78 really cool to see this taking on a life of its own.
I was nervous to even post this feature request lol.
The expansions you and @FrankFMY are building on top (achievement milestones, buddy journal, contextual familiarity, branching evolution) are genuinely great ideas that push it further!
I kindly request being added to the credits in your spec repo as the original evolution system designer. The spec already references #41684 in the Related section.
-- As I am typing this I saw @yazelin's post. Incredible!!
@RaphaelRUzan Thanks! Your PoC was the foundation — the XP engine, stat growth with diminishing returns, tier system, and sprite overlays are all directly from your design. I just wired it into Claude Code's hook system and added the web platform on top.
You're credited in the repo README and I've added you to the contributors section. If you want to collaborate or have ideas for improvements, PRs are welcome!
@FrankFMY Love the Nostalgic trigger on return — adopted in v3, it now explicitly fires when you come back to a file/project after 30+ days. The "evolution as development philosophy" framing is in too — each branch represents how you work, not just a visual variant.
Your Issue #1 on the spec repo is impressive work — 34 achievements, commands, schema. I'll review it in detail. One direction for v3: expanding achievements beyond coding into Research, Project Management, Creative, and Automation categories, since Claude Code is used for much more than just code. Your catalog is a great foundation to build on.
v3 spec is live: buddy-evolution-spec
@yazelin Impressive that you already have a working implementation. The plugin + web platform approach aligns with our v3 spec direction — community plugin as the primary implementation path. Would be interested to hear how your achievement tracking handles non-coding activities (research, writing, project management), since v3 expands the scope beyond pure coding metrics.
Spec: buddy-evolution-spec
@RaphaelRUzan Thanks for starting this whole conversation with #41684 — the evolution concept sparked everything that followed. The v3 spec is live with expanded scope (universal activities, not just coding). As the project matures and we validate the evolution mechanics, contributors will be recognized for their specific implementations. Appreciate your support!
Spec: buddy-evolution-spec
Thank you for the great idea! It's been great to see folks really enjoying buddy today 😃
I left this comment in #41867. The TLDR is since this is just a feature for April fools that will be removed in a few days, it's unlikely we'll be developing this further.
@alanfeng99 Online buddy battles is an interesting idea for the future. Right now the focus is on core mechanics — progression, evolution, journal. PvP could be a later phase once the foundation is solid. Follow the spec for updates: buddy-evolution-spec
@hawoonan-nhn Glad you love it! On monetization — the v3 spec moves away from gacha/microtransactions. Instead, progression speed is tied to subscription tier (same model as token limits). Everything is earnable for free, higher tiers just progress faster. No loot boxes, no pay-to-win. Full spec: buddy-evolution-spec
Built the progression system as a plugin: buddy-evolution
34 achievements, XP with streak multipliers, stat growth, session journal — all from the spec. Hooks into SessionStart/SessionEnd, parses the transcript JSONL, zero dependencies.
Full details in my comment on #41867.
Anthropic (or anyone) could leverage https://github.com/Tucuxi-Inc/CreatureMind - but we also have a NPC "living worlds/mind" that allows NPCs to evolve through interactions with each other and users (no LLMS needed...all math) - would love to see that functionality in a Buddy.
<img width="2166" height="1117" alt="Image" src="https://github.com/user-attachments/assets/3045f7e9-6d94-4f85-8342-9cb184c312c7" />
@Kevin-Tucuxi Interesting — CreatureMind's multi-agent NPC evolution concept has some overlap with what we're building. Will take a look at the repo. If you'd like to discuss how it could integrate with the buddy evolution system, Discussions are open: buddy-evolution-spec/discussions
@FrankFMY Great execution on the plugin. Discussions are now enabled on the spec repo for coordination across implementations: buddy-evolution-spec/discussions
Let's use it as a shared space for spec evolution, implementation notes, and community feedback.
@Hegemon78 Thanks! Just shipped a personality system in v1.2 — 12 personality types with distinct communication styles + a mood system (7 moods based on streak/achievements/level). The companion context is injected via SessionStart hook so Claude itself reflects the buddy's personality throughout the conversation.
Will check out the Discussions.
@FrankFMY Personality + mood is a great addition. You're clearly the fastest builder here.
Here's a thought: we're both building from the same spec, splitting community attention between two implementations. What if we combined forces?
I'm offering Core Contributor role on the spec repo — merge rights, credited in README, your personality/mood system adopted into the official spec. Your plugin becomes the reference implementation.
What we each bring:
Together: one unified project > two solo projects. Stronger pitch to Anthropic too.
Let's coordinate in Discussions — or reach out directly if you prefer.
Smarter Buddy - has a 50 character trait profile for each character and an evolution of personality/learning with a recurrent neural network "learning" through engagement with you. Licensed for personal, non-commercial use, the visualization explains the "brain" architecture:
https://github.com/Tucuxi-Inc/SmartBuddy/blob/main/docs/architecture-viz.html
https://github.com/Tucuxi-Inc/SmartBuddy
@Kevin-Tucuxi The RNN-based personality evolution is an interesting approach — neural learning through engagement is a different angle from what most of us are building here. Our focus is simpler for now — stat growth with diminishing returns and achievement-based progression. But could be worth exploring later.
Our plugin prototype is live: buddy-evolution — still in active development, feedback welcome.
Yeah, I figured I'd bite off a harder thing first. I figure, why wait - I've already built more sophisticated evolving intelligence in agentic systems - this is just a minor offshoot of stuff I've had in pocket for a year. I can do the stat growth and achievement based progression next. I'll take a look at your plugin and see if I can contribute there too.
v0.2.0 update: buddy-evolution now has a full character system — 10 moods with time-based decay, 12 personality voices, 36 evolution form ASCII art (6 species × 6 forms), 15 unlockable items, speech bubbles with personality reactions.
291 tests passing. The buddy is alive now — not just an XP tracker.
@Hegemon78 I'm in. Reference implementation + spec merge rights is a strong combo for both sides.
Here's what I'd propose for the split:
Two engines, one spec. Stronger pitch to Anthropic than either solo.
Happy to coordinate in Discussions. Will join this week.
Built something along these lines called Anima. It tracks your token usage and converts it into a @nim@ (1 per 1K tokens), which you spend on companion re-rolls. Every project gets its own unique ASCII familiar with species, rarity, and stat cards.
Not full RPG leveling yet, but the token economy and per-project companions are live in alpha.
https://github.com/btangonan/anima
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.