-
released this
2026-04-12 19:02:11 -07:00 | 2 commits to main since this releaseFixes
Catalog path —
post-tool-use.pynow checks~/.claude/buddymon/catalog.jsonfirst viafind_catalog(), matchingcli.py. Resolvesyour buddydisplay bug caused by CLAUDE_PLUGIN_ROOT pointing to an old cache without evolved forms (Verifex, Veritarch).Already-owned spawn guard — monsters already in the collection are silently skipped at spawn time, not just when an encounter is already active. No more CORSCurse re-appearing after it's caught.
Spawn block indentation —
set_active_encounterwas outside theelseblock, running even on already-owned skip. Fixed.user-prompt-submit null fallback — same
buddymon_idnull-check fix as was already inpost-tool-use.py.Roster delivery —
cmd_rosterbuffers output toroster_output.txt+ writesroster_pending.txt; suppresses stdout when piped (tty check).roster-stop.pyreads the output file directly instead of re-running the CLI, eliminating the recursive flag-write loop that would have re-delivered the roster on every subsequent Stop event.Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
2 downloads
-
Source code (ZIP)
-
released this
2026-04-12 18:46:10 -07:00 | 4 commits to main since this releaseWhat's New
Fixes
- Structured roster with four sections: BUDDYMON · LANGUAGE MASCOTS · LANGUAGE AFFINITIES · BUG TROPHY CASE
- Roster output routed through Stop hook (avoids Bash truncation)
- Stale buddy guard: prevents caught trophies from appearing as active buddy
- Already-owned auto-dismiss: instant clear for monsters already in collection
- New language trigger: use affinity XP (not volatile session list) to prevent false positives
- catalog.json copied to
~/.claude/buddymon/on install for stable path resolution - VoidSpecter duplicate entry cleaned up
Session state
- Per-session XP files fall through to active.json when buddymon_id is null (pgrp mismatch fix)
Language mascots
- Spawn probability:
base_rate * (1 + affinity_level * affinity_scale) - Passive strength reduction on each Write/Edit in matching language (floor 5%)
- Affinity-based catch formula for mascots in cmd_catch()
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
1 download
-
released this
2026-04-10 01:31:57 -07:00 | 6 commits to main since this releaseWhat's New
Language Mascots
A new category of collectible creatures tied to language affinities:
Mascot Language Rarity 🐍 Pythia Python Common ⚡ Asynclet JavaScript Common 📟 Bashling Shell Common 🐹 Goroutling Go Common 🔷 Typeling TypeScript Uncommon 💚 Vueling Vue Uncommon 🗄️ Querion SQL Uncommon 🦀 Ferrix Rust Rare 🐪 Perlius Perl Legendary 🏺 Cobolithon COBOL Legendary 🌀 Lispling LISP Legendary Each mascot has full evolution chains, language-themed challenges, and can be assigned as your active buddy.
Spawn mechanic: Mascots appear via
PostToolUseafter language affinity milestones. Probability scales with your affinity level — the more you code in a language, the higher the chance.Passive reduction: When a language mascot encounter is active, each file edit in that language ticks down its strength automatically.
Soft element gating: Your language affinity elements influence catch rate (bonus if elements align, penalty if resistant) — but a matching element is never required.
Veritarch — Third Evolution
Debuglin → Verifex (Lv.100) → Veritarch (Lv.200)
Challenges: TYPE FORTRESS · INVARIANT PROOF · ZERO FLAKE
"The type system is the test suite."
Script-First Architecture
- All game logic moved to
lib/cli.py(~850 lines) — 88% token reduction per invocation vs. the old inline SKILL.md SKILL.mdis now a thin ~55-line relay- CLI emits
[INPUT_NEEDED]and[HAIKU_NEEDED]markers; Haiku handles NL parsing at a fraction of Sonnet cost PostToolUsehook re-emits CLI stdout asadditionalContext— output always visible inline without Ctrl+O
Session XP Fix
Statusline now reads per-window XP from
sessions/<pgrp>.jsonwith fallback toactive.json. Multi-window sessions no longer show stale XP.Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
1 download
- All game logic moved to
-
v0.1.0 — Initial release Stable
released this
2026-04-01 15:21:55 -07:00 | 36 commits to main since this releaseWhat is Buddymon?
A Claude Code plugin that turns your coding sessions into a creature-collecting game. Bug monsters spawn from real error output. Buddymon companions gain XP, propose challenges, and level up alongside your work.
Install
git clone https://git.opensourcesolarpunk.com/Circuit-Forge/buddymon.git cd buddymon bash install.shRestart Claude Code, then run
/buddymon startto choose your starter.What's in v0.1.0
- 11 bug monsters — NullWraith, FencepostDemon, TypeGreml, SyntaxSerpent, CORSCurse, LoopLich, RacePhantom, FossilGolem, ShadowBit, VoidSpecter, MemoryLeech
- 5 Buddymon — Pyrobyte (Speedrunner), Debuglin (Tester), Minimox (Cleaner), Noctara (Nocturnal), Explorah (Explorer)
- Auto-resolve — encounters clear automatically when a clean Bash run shows no matching error patterns
- Challenges — buddies propose session goals at assignment time
- XP + levels — persistent across sessions via
~/.claude/buddymon/ /buddymonunified command withstart,assign,fight,catch,rostersubcommands
Mirrors
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads