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

Redacted sample. Your own sessions stay on your machine.

Quick start · In the browser · Usage · Privacy · Contributing


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 a failing tool call loop? What did the session really cost?

The 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 small Python package using only the standard library. No telemetry, no network, no account.


Quick start

Run it with whichever tool you already have. Each one downloads 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

After a global install:

claudon ~/.claude -o report.html --open

Requirements: Python 3.11+ on your PATH (python3, python or py). The npm-family packages are a thin launcher around the same Python script. No Python? Use the browser version or a standalone binary from GitHub Releases.

Other ways to install (shell script, git clone, pre-releases)

Shell script

curl -fsSL https://raw.githubusercontent.com/infenia/claudon/main/install.sh | sh

# recommended: pin a release (see GitHub Releases); the download 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 script installs the native binary for your platform (Linux x86_64, macOS arm64/Intel, Windows x86_64 via Git Bash or MSYS2), so Python is not needed. Other platforms (Linux arm64, Alpine/musl) get claudon.pyz, which needs Python 3.11+.

On Windows PowerShell:

irm https://raw.githubusercontent.com/infenia/claudon/main/install.ps1 | iex
# pin a release: $env:CLAUDON_VERSION = 'vX.Y.Z' first

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 <file> -R infenia/claudon.

Git clone

git clone https://github.com/infenia/claudon.git
cd claudon
python3 -m claudon ~/.claude -o report.html --open

Pre-releases

uvx --prerelease allow claudon
npx @infenia/claudon@beta

In the browser (no install)

Claudon also runs entirely in your browser, with no local Python.

  • Live app: claudon.infenia.com/app
  • Locally: from the repository root run python3 -m http.server, then open http://localhost:8000/wasm/.

Drop .jsonl transcripts onto the page, or use Open Folder on ~/.claude/projects to keep project grouping and subagents.


Use it inside Claude Code

claudon --install-plugin

Then type /claudon in any Claude Code session to generate and open your dashboard.


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. The default is $CLAUDE_CONFIG_DIR if set, else ~/.claude.

Flag Description
-o FILE, --out FILE Output HTML report path (default: cc_report.html)
--redact Redact prompts, titles, project names, paths, commands, session IDs and MCP server names, for safe 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 Open the generated report in your default browser
--install-plugin Register the /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

Common recipes

claudon --open                                  # analyze everything, open the report
claudon ~/.claude/projects/my-project --open    # one project only
claudon --redact -o share-me.html               # safe to attach to an issue

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.


Privacy

Everything runs on your machine. The CLI makes no network requests.

The browser version uploads nothing either: files are read and analyzed locally. Its only downloads are the Pyodide runtime (from jsDelivr) and claudon.pyz, and once it shows Ready it keeps working offline. Chrome and Edge ask to let the page view the folder you pick. Firefox and Safari show their own "upload" prompt for folder pickers, which only grants the page read access.


Releases

Claudon follows Semantic Versioning. Conventional Commit PR titles drive an auto-generated release PR (version bump + CHANGELOG); merging it tags the release and publishes:

  • PyPI (trusted publishing) and npm (with provenance)
  • Standalone binaries for Linux x86_64, macOS (arm64 and Intel) and Windows, on GitHub Releases with SHA256SUMS and build provenance attestations (gh attestation verify <file> -R infenia/claudon), plus claudon.pyz (single-file Python bundle, used by install.sh where no binary exists)

Full process: docs/RELEASING.md.


Contributing

Contributions are welcome. Please read CONTRIBUTING.md (PR titles must be Conventional Commits) and follow the Code of Conduct. Report vulnerabilities privately per SECURITY.md.

License

Developed by Infenia Private Limited. MIT License. See LICENSE.

Metadata

Release files for claudon 0.3.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.3.0
File Size Uploaded
claudon-0.3.0.tar.gz 38.2 kB Details

Built distribution (wheel)

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

Total release size: 66.9 kB

Release files / claudon-0.3.0.tar.gz

Download URL claudon-0.3.0.tar.gz
Size 38.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1d7e5ac38965e25e302ff7e37c0c07ffd7e13142335486b766f7b2e41a833761
BLAKE2b-256 checksum
How to use checksums
1603d996e703f382ccc9f2e4cff67fea78405231d005a15afb62d8ca8ea62db5
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 2, 2026.

Transparency log

Release files / claudon-0.3.0-py3-none-any.whl

Download URL claudon-0.3.0-py3-none-any.whl
Size 28.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8fc0f3295d96a0ba1bd76c887a034ee024c6775a5cfa6368c6741deff2b64b5
BLAKE2b-256 checksum
How to use checksums
273a1baa671966d3a56b66b0fa2c3c359ffbd801e3d6d31e6195cb9a755f41c1
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 2, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.1

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