Skip to main content

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.

CI PyPI npm Python License: MIT

uvx claudon --open
Claudon dashboard overview: tasks, wall time, cost, time breakdown and per-project cost

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: --redact strips 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, python or py). No Python at all? Use the browser version or a standalone binary from GitHub Releases. Use @beta / uvx --prerelease allow for 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):

  1. From the repository root run python3 -m http.server (or host the repo on any static server, e.g. GitHub Pages).
  2. Open http://localhost:8000/wasm/.
  3. Drop .jsonl transcripts, or use Open Folder on ~/.claude/projects to 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 SHA256SUMS and build provenance attestations (gh attestation verify <file> -R infenia/claudon).
  • PyPI: uvx, pipx or pip (trusted publishing).
  • npm: npx, pnpm dlx, yarn dlx or bunx (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)

Source distribution for claudon 0.2.0
File Size Uploaded
claudon-0.2.0.tar.gz 32.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for claudon 0.2.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page