Train Pokemon companions across your Claude Code sessions.
Gotta train 'em all.
$ claude plugin marketplace add josheche/statusmon $ claude plugin install statusmon@statusmon
Statusmon converts your coding activity into Pokemon progression. No configuration needed — just code normally.
Every token your session generates earns XP. 7,500 tokens = 1 XP. XP banks between sessions.
Your Pokemon levels up as XP accumulates. Level = floor(XP / 3) + 1. A normal session earns 1-3 levels.
At the real evolution level, your Pokemon transforms. A full-color ANSI sprite announces the moment.
❯ fix the auth middleware ● Reading src/middleware/auth.ts ● Edit(src/middleware/auth.ts) 🔥 CHARMANDER LV8 · #4 · Lizard Pokemon · Gen 1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━──────── ▄▀▀▀ ▀▀▀▀▀ ▀▀▀▀▀▀▄▄ ▀ ▀▀▀▀▀▀▀▀ ▀▀▀ ▀▀▀▀▄ ▄▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀ ▀▀▄
❯ refactor the database layer ● Reading lib/db.ts, lib/models/*.ts ● Edit(lib/db.ts) — 3 files changed 💧 WARTORTLE LV28 · #8 · Turtle Pokemon · Gen 1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━─────────── ▄ ▄▀▄ ▄▀▀▀ ▀▀▄▀▀▄▀▀▀ ▀▀▀▀▀▀▀▀▀ ▄▄▄ ▀▀▀▀▀▀▀▀▄ ▀▀▀▀ ▄▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀ ▄▀▀▀ ▀▀▀▀▄
❯ add tests for the new API ● Writing test/api.test.ts ● Bash(npm test) — 24 tests passing ⚡ PIKACHU LV52 · #25 · Mouse Pokemon · Gen 1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━────── ▄▄ ▀▀ ▄ ▄▄▀▀ ▄▀▀▀▀▀▀▀ ▄▀▀ ▀▀▀▀▀▀▀▄▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀ ▀▀▀ ▀▀▀
❯ deploy to production ● Bash(npm run build && npm publish) Published statusmon@0.1.0 🌿 VENUSAUR LV45 · #3 · Seed Pokemon · Gen 1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━─────────── ▄▄▀▀▄▄▄▄▄▄▀▄▄▄ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ ▀▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄▀▀ ▄▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄▄ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ ▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀ ▀▀▀▀▀▀
Every coding session earns XP. Your companion levels up, evolves at the real game levels, and when fully evolved — a new wild encounter appears.
Full-color Pokemon sprites rendered with bilinear interpolation using Unicode half-block characters. Configurable size from 8 to 48 terminal rows.
Evolution at the actual game levels from PokeAPI. Charmander evolves at Lv.16, Charmeleon at Lv.36. Sprite announcements on evolution moments.
Every Pokemon you train is recorded. Browse your encounter history with /pokedex — species, max level, evolution reached, dates trained.
Start with Gen 1 Kanto (151 Pokemon). Unlock new generations as you train. Each gen adds to the encounter pool — more Pokemon to discover.
Start your journey in Kanto. Unlock new regions as you train more Pokemon.
| Generation | Pokemon | Region | Unlock |
|---|---|---|---|
| Gen 1 | #001 – #151 | Kanto | Start |
| Gen 2 | #001 – #251 | Johto | 50 sessions |
| Gen 3 | #001 – #386 | Hoenn | 100 sessions |
| Gen 4 | #001 – #493 | Sinnoh | 150 sessions |
| Gen 5+ | ... | ... | +50 each |
Pure Node.js. 2 runtime dependencies. No database, no native compilation, no build step for users.
~/.statusmon/ ├── trainer.json # companion + XP + generation ├── pokedex.json # encounter history └── cache/ # PokeAPI responses + sprites # Dependencies pngjs # sprite PNG decoding pokedex-promise-v2 # PokeAPI wrapper