SARTHAK2511/claude-combo
combo-meter
Fighting-game combo meter for Claude Code: every clean tool call is a hit, every error breaks the chain, with ranks D to SSS and special moves.
About this mod
Claude Combo turns a Claude Code session into an arcade fight. Each tool call is a move scored by type (Read/JAB, Edit/SLASH, Bash/HADOUKEN, git commit/SEAL, etc.), and points are multiplied by the running combo (x2 at 10 hits, up to x5). Special moves like RED→GREEN TATSUMAKI, SEEK & STRIKE, TRIPLE SLASH, COMEBACK!, FLAWLESS VICTORY and PERFECT TURN give bonus points, and ranks climb from D (DECENT) to SSS (SMOKIN' SHIP STYLE). The plugin hooks session.start, turn.start, tool.call, turn.complete, session.end, command.run and ui.render to render a pixel-art combo band above the prompt, a status line, toasts for rank ups and specials, and optional chiptune sound effects generated by tools/make-sfx.py. It makes no network requests, never reads file contents, only stores best combo and score, and passes tool calls through unchanged. Install via the marketplace (claude plugin marketplace add sarthak2511/claude-combo; claude plugin install combo-meter@sarthak-mods) or a local clone with --plugin-dir, then use /combo for the fight card and /combo reset-best to clear records.
Installation
Check the author's README for the marketplace and plugin name first. Commands may change as the repository evolves.
claude plugin marketplace add SARTHAK2511/claude-combo claude plugin install combo-meter
Original text / README
🥊 Claude Combo: a fighting-game combo meter for Claude Code
Claude Combo turns your Claude Code session into an arcade fight. Every clean tool call is a hit, every error breaks the chain, and you climb from D to SSS while a pixel-art counter, a status line and chiptune effects keep score. It's a free, open-source Claude Code mod (a plugin of function hooks): a streak counter, combo tracker and status line in one.
▀▄▀ ▀█▀ ▀█▀ ▐ B ▌ BLAZING ×2 1,240 pts
▄▀▄ █ ▄▄█ ████████████░░░░░░░░ 5 to A
✦ RED→GREEN TATSUMAKI pnpm test +250
Why? A long agent session is hours of tool calls. Claude Combo turns "did that run clean?" into a number you can see, so a failing test breaks your streak and a green one feels good.
Install
From the marketplace (recommended):
claude plugin marketplace add sarthak2511/claude-combo
claude plugin install combo-meter@sarthak-mods
From a local clone, for one session:
git clone https://github.com/sarthak2511/claude-combo
claude --plugin-dir ./claude-combo
Then run a few tool calls. The band appears above the prompt after your first hit.
Type /combo for the fight card.
How scoring works
Each tool call is a move. Points are multiplied by your combo: ×2 from 10 hits, up to ×5.
| Tool call | Move | Points |
|---|---|---|
| Read | JAB | 10 |
| Grep / Glob | SCOUT | 10 |
| Edit | SLASH | 25 |
| Write | UPPERCUT | 30 |
| Bash | HADOUKEN | 20 |
| Bash running tests | RISING TEST | 50 |
| git commit | SEAL | 60 |
| Agent / subagent | ASSIST | 40 |
| MCP tool | SUMMON | 20 |
Special moves
| Special | How to land it | Bonus |
|---|---|---|
| RED→GREEN TATSUMAKI | Read → Edit → passing test | +150 |
| SEEK & STRIKE | Grep → Read → Edit | +80 |
| TRIPLE SLASH | Three edits in a row | +100 |
| COMEBACK! | Tests pass after they failed | +200 |
| FLAWLESS VICTORY | git commit on a 20+ combo | +300 |
| PERFECT TURN | 8+ hits in one turn, zero errors | +10 per hit |
Ranks
D DECENT (3) · C CLEAN (6) · B BLAZING (10) · A ATOMIC (16) ·
S SHIPPING (25) · SS SENIOR STAFF (40) · SSS SMOKIN' SHIP STYLE (60)
What breaks a combo
A tool call that errors: a failing command, a failing test, an edit that didn't apply. A call you deny is a parry. It doesn't count as a hit, but it doesn't break the chain either.
What you see
- Band above the prompt: a pixel-art combo counter drawn with half blocks, a heat meter to the next rank and your last move. It falls back to text on desktop, VS Code and mobile surfaces.
- Status line:
⚡ x23 A · 4,180 pts - Toasts for rank ups, specials, breaks, new records and perfect turns.
- Chiptune sound effects for the big moments. They play on macOS only, and the
.wavfiles are generated bytools/make-sfx.py. /comboshows the session's fight card./combo reset-bestclears your all-time record.
Options
Change them in /config:
| Option | Default | |
|---|---|---|
| sound | true | Chiptune effects (macOS) |
| style | big | big pixel counter, or compact one-line text band |
Footprint
Claude Combo only hooks session.start, turn.start, tool.call, turn.complete,
session.end, command.run (/combo) and ui.render (the band). It reads each
tool call's name and its file path or command head to name the move. It makes no
network requests, never reads file contents, and stores only your best combo and
score through $.store. Run claude plugin validate . to see the full list of
calls it makes.
FAQ
Does it slow Claude Code down? No. Each hook does a few pure-function updates, and the sound is fire-and-forget.
Does it change what Claude does? No. It observes tool calls and always passes them through unchanged.
Does it work in the desktop app and VS Code? Yes, with a text band instead of the pixel counter.
Can I change the ranks, points or moves? They live in
hooks/combo.ts, a pure file with no engine dependencies.
Development
claude plugin validate .
claude plugin test .
python3 tools/make-sfx.py # regenerate sfx/*.wav
Issues and PRs are welcome. New moves and specials especially.
Related Claude Code mods
See the community catalogue awesome-claude-code-mods for status lines, dashboards, guardrails and games.
License
MIT. Made by Sarthak Bhatore.


