[FEATURE] RPG evolution for /buddy — let pets grow from actual token usage

Resolved 💬 30 comments Opened Mar 31, 2026 by RaphaelRUzan Closed Apr 1, 2026

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

  1. I use Claude Code daily for a React + Node project — typically 30-60 min sessions with heavy tool usage
  2. 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
  3. My DEBUGGING stat has grown from 45 to 72 because I've been running lots of test suites and editing files
  4. My streak multiplier is at 1.6x (day 7), so today's 50K-token session earns ~88K XP instead of ~55K
  5. 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
  6. 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.

View original on GitHub ↗

30 Comments

2jfs904judsw20600jikn613d0dookl23jsig · 3 months ago

+1 id pay for this

hawoonan-nhn · 3 months ago

+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.

alanfeng99 · 3 months ago

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

Hegemon78 · 3 months ago

+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:

  • Direct purchase of rare/legendary species (Dragon, Nebulynx, etc.)
  • Stat growth tied to real coding activity (aligned with this issue)
  • Make stats functional — high DEBUGGING → real bug detection, high WISDOM → contextual tips
  • Localization — buddy speaks user's language

Let's make this happen! 🐢→🐉

yukohao · 3 months ago

+1 id pay for this

FrankFMY · 3 months ago

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?

  • "First Green Suite" — test suite goes from failing to all-pass
  • "Refactor Survivor" — touch 50+ files in a session without breaking tests
  • "Debug Speedrun" — fix a bug within 5 min of encountering it
  • "Polyglot" — work with 5+ languages in one week

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:

  • High DEBUGGING + High PATIENCE → "Methodical" (calm, thorough animations)
  • High CHAOS + High SNARK → "Trickster" (playful, unpredictable reactions)
  • High WISDOM + High DEBUGGING → "Sage" (rare but always relevant comments)
  • High PATIENCE + Low CHAOS → "Zen" (minimalist, speaks seldom)

C(5,2) = 10 possible 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.md that your buddy "writes" after each session:

## 2026-04-01 — Session #847
Touched 23 files across 2 packages.
Longest debug chain: 18 min on auth.ts (resolved ✓)
Tests: 🔴→🟢 ×3 | New files: 2
Streak: Day 12 — [DEBUGGING +0.3]

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.

Hegemon78 · 3 months ago

@FrankFMY Your mechanics are now core parts of the updated proposal in #41867. Specifically:

  • Achievement-milestone evolution → adopted as the primary progression model (personal records > idle time)
  • Buddy Journal → adopted with one addition: buddy is global (cross-project) AND project-aware
  • Contextual familiarity → adopted as-is, with familiarity levels (New → Familiar → Expert → Nostalgic)
  • Emergent personality → simplified to 12 base patterns + one choice point at evolution (to keep it accessible)

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.

FrankFMY · 3 months ago

@Hegemon78 Love that you ran with these ideas — the New → Familiar → Expert → Nostalgic familiarity 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.

yazelin · 3 months ago

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)

/plugin marketplace add yazelin/buddy-evolution
/plugin install buddy-evolution@buddy-evolution

Then:

/buddy-evolution:evo setup    ← imports your /buddy data
/buddy-evolution:evo          ← see evolution status
/buddy-evolution:evo sync     ← upload to platform

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

RaphaelRUzan · 3 months ago
I also created a full specification repo: buddy-evolution-spec — your contributions are credited there.

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!!

yazelin · 3 months ago

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

Hegemon78 · 3 months ago

@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

Hegemon78 · 3 months ago

@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

Hegemon78 · 3 months ago

@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

alii · 3 months ago

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.

Hegemon78 · 3 months ago

@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

Hegemon78 · 3 months ago

@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

FrankFMY · 3 months ago

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.

Kevin-Tucuxi · 3 months ago

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" />

Hegemon78 · 3 months ago

@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

Hegemon78 · 3 months ago

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

FrankFMY · 3 months ago

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

Hegemon78 · 3 months ago

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

  • You: 34 achievements, personality system, mood engine, fast shipping
  • Me: Universal activity tracking (research/PM/creative — not just coding), web dashboard, spec ownership, community coordination

Together: one unified project > two solo projects. Stronger pitch to Anthropic too.

Let's coordinate in Discussions — or reach out directly if you prefer.

Kevin-Tucuxi · 3 months ago

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

Hegemon78 · 3 months ago

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

Kevin-Tucuxi · 3 months ago

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.

Hegemon78 · 3 months ago

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.

FrankFMY · 3 months ago

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

  • FrankFMY/buddy-evolution stays as the reference plugin — achievement engine (34 achievements), personality/mood system (12 types × 7 moods), transcript parsing, session journal, XP math. The data layer.
  • Your companion terminal app handles the visual layer — ASCII art, speech bubbles, mood animations. What hooks can't do, your app can.
  • Spec repo becomes the shared standard we both implement against. My PR on the spec has the full achievement catalog + technical schema + session-end pipeline — let's align on that first.

Two engines, one spec. Stronger pitch to Anthropic than either solo.

Happy to coordinate in Discussions. Will join this week.

btangonan · 3 months ago

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

github-actions[bot] · 3 months ago

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.