Claudon
See where your Claude Code time and money actually go.
One command turns your session logs into an interactive HTML dashboard.
100% local · zero dependencies · nothing leaves your machine.
uvx claudon --open
Demo data. Your own sessions stay on your machine.
Why Claudon?
Claude Code is fast until it isn't. Which turn burned ten minutes? Was it the model, a slow tool, or you being away? Did that failing tool call loop? What did the session really cost? Your answers are already in ~/.claude; Claudon reads them and shows you:
- Where time went: model vs. tools vs. permission waits vs. idle, per task, turn and subagent.
- What it cost: token usage × list prices per model generation (override with
--pricing). - What went wrong: automatic detection of tool failures, slow turns and retry loops.
- How hard it thought: thinking time vs. thinking tokens.
- Safe to share:
--redactstrips prompts, paths, commands and project names.
It is a single Python file using only the standard library. No telemetry, no network, no account.
🚀 Quick Start
Use whichever runner you already have; each downloads and runs the latest release on demand:
| Tool | Run once | Install globally |
|---|---|---|
| uv | uvx claudon |
uv tool install claudon |
| pipx | pipx run claudon |
pipx install claudon |
| pip | pip install claudon |
|
| npm | npx claudon |
npm install -g claudon |
| pnpm | pnpm dlx claudon |
pnpm add -g claudon |
| Yarn (2+) | yarn dlx claudon |
|
| Bun | bunx claudon |
bun add -g claudon |
| Shell script | install.sh |
|
| Browser | WebAssembly page | no install |
claudon ~/.claude -o report.html --open # after a global install
The npm-family packages (npx, pnpm, yarn, bun) are a thin launcher around the same Python script, so they need Python 3.11+ on your
PATH(python3,pythonorpy). No Python at all? Use the browser version or a standalone binary from GitHub Releases. Use@beta/uvx --prerelease allowfor pre-releases.
Standalone Shell Script
curl -fsSL https://raw.githubusercontent.com/infenia/claudon/main/install.sh | sh
# recommended: pin a release (see GitHub Releases); claudon.py is checked against that release's SHA256SUMS
curl -fsSL https://raw.githubusercontent.com/infenia/claudon/main/install.sh | CLAUDON_VERSION=vX.Y.Z sh
The checksum catches corrupted or mismatched downloads. To also prove a release file was built by this repo's
workflow, download it and run gh attestation verify claudon.py -R infenia/claudon.
Direct Clone
git clone https://github.com/infenia/claudon.git
cd claudon
python3 claudon.py ~/.claude -o report.html --open
⚡ WebAssembly (In-Browser / Zero Python)
Run Claudon entirely in your browser without local Python installed. The page loads ../claudon.py,
so it has to be served over HTTP (opening the file directly via file:// can't load it):
- From the repository root run
python3 -m http.server(or host the repo on any static server, e.g. GitHub Pages). - Open
http://localhost:8000/wasm/. - Drop
.jsonltranscripts, or use Open Folder on~/.claude/projectsto keep project grouping and subagents.
Nothing is uploaded. Files are read by the browser and analyzed on your machine; the page's only network requests
download the Pyodide runtime (jsDelivr) and claudon.py, and once it shows Ready it keeps working offline. Chrome and
Edge ask to let the page view the folder. Browsers without that folder API (Firefox, Safari) show their own
"upload" prompt for folder pickers, which only grants the page read access.
🛠️ Native Binary (Nuitka)
To compile Claudon into a single native binary locally:
pip install nuitka==4.2.2 zstandard
python scripts/build_nuitka.py --onefile
Standalone executables are output to dist/.
📦 Releases
Claudon follows Semantic Versioning and is released through an automated, reviewable pipeline: Conventional Commit PR titles drive an auto-generated release PR (version bump + CHANGELOG); merging it tags the release and publishes:
- Nuitka Binaries: Linux x86_64, macOS (arm64 and Intel) and Windows, attached to GitHub Releases with
SHA256SUMSand build provenance attestations (gh attestation verify <file> -R infenia/claudon). - PyPI:
uvx,pipxorpip(trusted publishing). - npm:
npx,pnpm dlx,yarn dlxorbunx(with provenance).
Want pre-release builds? uvx --prerelease allow claudon or npx claudon@beta. Full process: docs/RELEASING.md.
⚡ Integration with Claude Code
Install Claudon as a native slash command inside Claude Code:
claudon --install-plugin
Once installed, simply type /claudon in any active Claude Code CLI session to instantly generate and open your analytics dashboard!
⚙️ Options & CLI Usage
claudon [PATH] [-o FILE] [--redact] [--pricing FILE] [--open] [--install-plugin [--force]] [--version]
PATH can be a ~/.claude directory, its projects/ subfolder, a specific project directory, or a single .jsonl transcript file (default: $CLAUDE_CONFIG_DIR if set, else ~/.claude).
| Flag | Description |
|---|---|
-o FILE, --out FILE |
Output HTML report file path (default: cc_report.html) |
--redact |
Redact prompts, titles, project names, paths, commands, session IDs and MCP server names for safe report sharing |
--pricing FILE |
Custom $/MTok rates keyed by model-id substring (longest match wins): {"claude-opus-4-1": [input, output, cache_read, write_5m, write_1h]} |
--open |
Automatically open the generated HTML report in your default browser |
--install-plugin |
Register /claudon slash command in <config dir>/commands/ |
--force |
With --install-plugin: overwrite a claudon.md you have edited (otherwise it is left alone) |
--version |
Print the version |
📊 What's in the Report?
- Task Breakdown: each human prompt through to completion.
- Turns & Subagents: model API calls vs. agent delegation.
- Time, Thinking & Cost: the breakdowns described above.
- Bottlenecks: failures, slow turns and loops, surfaced automatically.
The report is one self-contained .html file: no server, no external assets, easy to attach to an issue (use --redact).
🤝 Contributing
Contributions are welcome. Please read CONTRIBUTING.md (PR titles must be Conventional Commits), follow the Code of Conduct, and report vulnerabilities privately per SECURITY.md. See the CHANGELOG for release history.
📄 License
Developed by Infenia Private Limited. MIT License. See LICENSE for details.
Metadata
Release files for claudon 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| claudon-0.2.0.tar.gz | 32.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| claudon-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.6 kB
Release files / claudon-0.2.0.tar.gz
| Download URL | claudon-0.2.0.tar.gz |
|---|---|
| Size | 32.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e59e4dae4fcac68e060ce064d589b4222ddb3dcc79b8b72d77cf6c038dcb0d71
|
|
BLAKE2b-256 checksum How to use checksums |
85021eefd366c6a49b81f5665b04dedc12fa7574a09e0da6181e4b588ba9e02f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / claudon-0.2.0-py3-none-any.whl
| Download URL | claudon-0.2.0-py3-none-any.whl |
|---|---|
| Size | 24.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe58d296f707e20d64eb70b09c9c22dc95fff8b9dad93ffa497d99c9bb92fa39
|
|
BLAKE2b-256 checksum How to use checksums |
daedaa4e9215e5c04fc4fd6f3505476c188e3c4c4f856c520c3758061a015906
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency log