claude-character-sheet
v1.1.0
Published
Turn your Claude usage into an MMORPG-style character sheet (radar chart of 6 stats + class + level). Local-only parsing, zero dependencies.
Maintainers
Readme
claude-stats
Claude Status Check — analyze your Claude usage and get an MMORPG-style character sheet: a radar chart of 6 stats, a character class, and a level.

A hobby project. No server, no accounts, no tracking. Everything runs on your machine or in your browser.
Quick start
Path 1 — Claude Code users (CLI)
npx claude-character-sheet
# or straight from GitHub (no npm):
npx github:MankhongGarden/claude-stats
# pin to an immutable release for reproducibility:
npx github:MankhongGarden/claude-stats#v1.0.0Scans your local Claude Code transcripts (~/.claude/projects or $CLAUDE_CONFIG_DIR/projects), prints a terminal stat card, and gives you a share URL that opens the web card.
Flags:
| flag | effect |
|---|---|
| --json | raw JSON output, no card |
| --no-share | skip the share URL |
| --dir <path> | use a custom transcripts directory |
| --help | usage |
Path 2 — claude.ai users (web upload · beta)
Open the web page and drop your claude.ai data export (conversations.json) onto it:
https://mankhonggarden.github.io/claude-stats/
How to get the file: claude.ai → Settings → Privacy → Export data → the file arrives by email.
Beta note: the claude.ai export parser is written against the publicly documented export shape but has not been validated against every real export. If your file is not recognized, please open an issue — ideally describing the top-level structure (no need to share any conversation content).
Privacy model
- CLI: transcripts are read locally and never leave your machine. Only the 6 aggregate scores plus three totals (sessions, tool calls, message count) are encoded into the share URL hash — the level shown on the card is derived from those totals. Nothing else travels.
- Web upload:
conversations.jsonis parsed entirely in your browser (client-side JavaScript). There is no backend and no upload endpoint — there is nowhere for the file to go. - Share URL: contains only the aggregated numbers (6 scores + 3 totals), base64url-encoded in the
#s=hash. Anyone with the link sees your stat card, never your conversations. - The web app vendors its JS libraries locally — opening the page makes no third-party API calls except Google Fonts (CSS only).
How scoring works
Each tool call (CLI) or message heuristic (web) is classified into one of 6 axes:
| axis | what it measures | example signals (CLI) |
|---|---|---|
| AUTOMATOR | agents, workflows, shell automation | Agent, Task, Workflow, Bash, PowerShell |
| RESEARCHER | searching and reading | WebSearch, WebFetch, Read, Grep, Glob |
| CODER | writing and editing real files | Edit, Write, NotebookEdit |
| INTEGRATOR | external services via MCP | any other mcp__* tool |
| WRITER | prose output volume | assistant text chars / 4000 |
| PILOT | driving a real browser | chrome-devtools / playwright MCP tools |
CLI uses fixed anchors so two Claude Code users' cards are directly comparable:
score = min(100, round(100 * sqrt(x / REF))) — a square-root curve, so early activity climbs fast and the top end is hard to max.
REF anchors (what 100 means on the CLI path), v1:
| axis | REF (CLI units) | |---|---| | automator | 25000 | | researcher | 15000 | | coder | 15000 | | integrator | 8000 | | writer | 4000 | | pilot | 4000 |
Web uses self-relative shape scoring instead: your strongest axis is the reference (100) and the rest are proportional ((x / max) ^ 0.7). Volume is carried by the level, not the axis heights — so a casual user still gets a full, varied radar (like an RPG class whose stat shape is the same at level 5 and level 50), rather than a flat low card. Web axes are counted from your own messages (what you ask for), never from how much Claude wrote back. The web card is a rough estimate and is not comparable to a CLI card.
Honest calibration note: the CLI anchors are derived from a single heavy daily user's corpus (~426 sessions / ~57k tool calls, snapshot 2026-06-12) — one data point, not a population study. Expect recalibration in later versions.
Level: floor(sqrt(effort / 25)), where effort = total tool calls (CLI) or total messages × 4 (web). Minimum level 1.
Character classes
Your top axis decides your class (ties break by axis order):
| top axis | class | |---|---| | automator | Fleet Commander — ผู้บัญชาการกองทัพ AI | | researcher | Lore Hunter — นักล่าความรู้ | | coder | Code Smith — ช่างหลอมโค้ด | | integrator | Realm Linker — ผู้เชื่อมทุกอาณาจักร API | | writer | Chronicle Keeper — ผู้จดบันทึกแห่งยุค | | pilot | Web Navigator — นักบินผู้พิชิตทุกหน้าเว็บ |
FAQ
Why is my level low? Levels follow a square-root curve against total volume — they're meant to climb slowly. The anchors are calibrated against a very heavy user, so a "normal" usage pattern landing at level 5–15 is expected, not a bug.
Does this upload my chats anywhere? No. There is no server. CLI parsing happens on your machine; web parsing happens in your browser. The only thing that ever travels is the share URL you choose to copy, which contains 6 scores + 3 totals (sessions, tool calls, message count) — never message text.
The web upload says my file format isn't recognized. The claude.ai parser is beta. Export formats can change. Please open an issue with a description of the file's top-level structure.
Can I compare with friends?
CLI cards compare to CLI cards — scores use fixed anchors (not self-relative), so two Claude Code users' cards are directly comparable. The web (claude.ai) card is a rough text-inferred estimate and is not comparable to a CLI card; the CLI / WEB · BETA badge next to the level tells you which kind you're looking at.
สรุปภาษาไทย
Claude Status Check — เช็คสถานะการใช้ Claude ของคุณ แล้วได้การ์ดตัวละครสไตล์เกม MMORPG: กราฟเรดาร์ 6 ค่าพลัง + คลาส + เลเวล
2 ทางเข้า:
- สาย Claude Code: รัน
npx github:MankhongGarden/claude-statsใน terminal — สแกน transcript ในเครื่อง พิมพ์การ์ดสรุป + ลิงก์แชร์ - สาย claude.ai (เบต้า): ไปที่ https://mankhonggarden.github.io/claude-stats/ แล้วลากไฟล์
conversations.json(ขอ export ได้ที่ Settings → Privacy → Export data ไฟล์มาทางอีเมล) — ตัวอ่านไฟล์ยังเป็นเวอร์ชันเบต้า ถ้าไฟล์อ่านไม่ได้ช่วยเปิด issue บอกหน่อย
ความเป็นส่วนตัว: ข้อมูลบทสนทนาไม่ออกจากเครื่องเลย — CLI อ่านไฟล์ในเครื่อง ส่วนหน้าเว็บอ่านไฟล์ในเบราว์เซอร์เท่านั้น ไม่มี server ไม่มีการอัปโหลด สิ่งเดียวที่อยู่ในลิงก์แชร์คือเลขคะแนนรวม 6 ค่า
คะแนน: คิดจากปริมาณการใช้งานจริงเทียบกับค่าอ้างอิงคงที่ (สูตร square root) เทียบข้ามคนได้ · ค่าอ้างอิง v1 มาจากข้อมูลผู้ใช้หนัก 1 คน อาจปรับใหม่ในเวอร์ชันถัดไป
โปรเจกต์งานอดิเรก ฟรี โอเพนซอร์ส (MIT)
