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 @infenia/claudon npm install -g @infenia/claudon
pnpm pnpm dlx @infenia/claudon pnpm add -g @infenia/claudon
Yarn (2+) yarn dlx @infenia/claudon
Bun bunx @infenia/claudon bun add -g @infenia/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 @infenia/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.1

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.1
File Size Uploaded
claudon-0.2.1.tar.gz 32.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for claudon 0.2.1
File Interpreter ABI Platform
claudon-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 57.7 kB

Release files / claudon-0.2.1.tar.gz

Download URL claudon-0.2.1.tar.gz
Size 32.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4f82d543ab82739afd03bfe58d99d4e8626c792bd4ad92bdb0ff0b857a6b8422
BLAKE2b-256 checksum
How to use checksums
e71562eddbf3e7d64a07c4705111b99055c1240ed840d69559e9461c17d1c580
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.1-py3-none-any.whl

Download URL claudon-0.2.1-py3-none-any.whl
Size 24.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b77d5a08350ed89078d41fca81dbf1d25215f4cd4dac1821f6f280a8fd3dea5
BLAKE2b-256 checksum
How to use checksums
0d0a84e9b7d03c4d6d7c349755dbff8540c1c1ee202ab71d9c565c243f1e0a04
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

This release

0.2.1 This release

2 release files

0.2.0

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