SARTHAK2511/claude-combo
combo-meter
Claude Code용 격투 게임 콤보 미터. 도구 호출이 성공할 때마다 1히트, 오류가 나면 콤보가 끊깁니다. 랭크는 D부터 SSS까지이고 필살기도 있습니다.
이 mod 소개
Claude Combo는 Claude Code 세션을 아케이드 대전으로 바꿉니다. 도구 호출 하나하나가 기술이 되어 종류별로 점수가 매겨지고(Read/JAB, Edit/SLASH, Bash/HADOUKEN, git commit/SEAL 등), 점수에는 현재 콤보 배율이 곱해집니다(10히트에서 x2, 최대 x5).
RED→GREEN TATSUMAKI, SEEK & STRIKE, TRIPLE SLASH, COMEBACK!, FLAWLESS VICTORY, PERFECT TURN 같은 필살기는 보너스 점수를 줍니다. 랭크는 D(DECENT)에서 SSS(SMOKIN' SHIP STYLE)까지 올라갑니다.
플러그인은 session.start, turn.start, tool.call, turn.complete, session.end, command.run, ui.render 훅에 연결되어 프롬프트 위에 픽셀 아트 콤보 밴드와 상태 줄을 그립니다. 랭크 업과 필살기는 토스트로 알려 줍니다. tools/make-sfx.py로 만든 칩튠 효과음도 선택적으로 쓸 수 있습니다.
네트워크 요청은 보내지 않고 파일 내용도 읽지 않습니다. 저장하는 것은 최고 콤보와 점수뿐이며, 도구 호출은 그대로 통과시킵니다.
설치는 marketplace(claude plugin marketplace add sarthak2511/claude-combo; claude plugin install combo-meter@sarthak-mods)나 --plugin-dir로 로컬 clone을 불러오는 방식입니다. 이후 /combo로 전적 카드를 보고, /combo reset-best로 기록을 지웁니다.
설치
먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.
claude plugin marketplace add SARTHAK2511/claude-combo claude plugin install combo-meter
원문 / 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.


