Skip to main content
Claudon logo

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 tour: overview, tasks, tools, models and bottlenecks

Redacted sample. Your own sessions stay on your machine.

Quick start · In the browser · Usage · On-device AI · 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 ranked findings with a concrete fix each: tool failures and retry loops, permission-prompt waits, expired prompt caches, repeated reads, edit churn, context bloat, trends
How hard it thought thinking time vs. thinking tokens
What to fix first (optional AI) an AI summary on the Overview and an Ask AI chat, run by your browser's on-device model, only in browsers that support it
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. The optional AI summary and Ask AI work here too, in browsers that support the built-in AI APIs.


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

Tab What it shows Works in
Overview KPIs, where the wall-clock time goes, per-task distribution, cost per day, per project and by token type any modern browser
Tasks every human prompt through to completion; click one for its timeline, tools, context growth and signals any modern browser
Tools time, errors and rejections per tool, plus the slowest individual calls any modern browser
Models & thinking calls, cost, speed and thinking per model any modern browser
Bottlenecks findings ranked worst first, each with the time and spend at stake, why it matters and how to fix it any modern browser
Overview → AI summary a headline, where the time and money go, and the fixes to do first (each opens its finding in Bottlenecks) browsers with built-in AI only
Ask AI chat about the sessions in view browsers with the Prompt API only

The report is one self-contained .html file: no server, no external assets.

The Bottlenecks findings

Every finding is computed exactly from the transcripts (no AI involved) and comes with a Fix line:

  • Idle time and permission-prompt waits (Read/Edit/Write calls that sat waiting for your approval)
  • Failing tools, and tasks stuck retrying the same failing step
  • Repeated identical reads/searches and edit churn (the same file edited 10+ times)
  • Context bloat past 400k tokens, expired prompt caches after a 5+ minute pause, and a high cache-write share
  • Interrupts and rejected tool calls, heavy thinking, and subagent cost share
  • Tasks with unusually many turns for their project, cost concentration, and trends (earlier vs. later tasks)

Filters (project, search) apply to every finding. The thresholds live in one RULES object in claudon/dashboard.html.


On-device AI (optional)

When your browser can run its own built-in language model, the report adds:

  • AI summary (Overview tab, under the KPIs): a headline, where the time and money go, and up to four priorities. Each priority opens the Bottlenecks finding it is based on.
  • Ask AI (its own tab, Prompt API only): chat about the sessions in view, e.g. "Why was yesterday slow?", "Which tools fail most?" or "What did expired caches cost me?". Tasks the answer cites become clickable, and Data the model saw shows exactly what it was given. The chat is kept in your browser's local storage (per report) until you press Clear chat.

Which browsers

Browser AI summary Ask AI
Chrome 148+ (desktop) ✅ Prompt API ✅
Chrome 138–147 (desktop) ✅ Summarizer API ❌ needs the Prompt API
Microsoft Edge (desktop) ✅ Summarizer API ⚙️ enable edge://flags → Prompt API for on-device language model
Firefox, Safari, mobile browsers ❌ hidden ❌ hidden
Any browser that later ships the same standard LanguageModel / Summarizer APIs ✅ automatically ✅ automatically

Support is detected by asking the browser itself (LanguageModel.availability() / Summarizer.availability()), never from its name, so new browsers work as soon as they ship the APIs.

Hardware. Chrome runs Gemini Nano on Windows 10/11, macOS 13+, Linux or ChromeOS (Chromebook Plus). It needs about 22 GB of free disk, plus either a GPU with more than 4 GB of VRAM or 16 GB of RAM and 4 CPU cores. Edge has similar requirements for its Phi model. If the browser reports that the device can't run the model, the AI features stay hidden. Check the model's state at chrome://on-device-internals (Edge: edge://on-device-internals).

First use. The browser may need to download its model once (a few GB). Claudon never starts that download on its own: it shows Enable on-device AI, and the browser downloads its model only after you click. After that the model runs locally and keeps working offline.

Where it works

  • A report the CLI wrote, opened from disk (file://)
  • The browser app, whose report frame is allowed to use the AI APIs
  • A report saved from the browser app

How it stays accurate. The AI never computes numbers. It is given the findings and report data (already-formatted figures), is told to use only that data, and can only point at findings that exist. Its output is shown as plain text. For chat, the data for each question is picked by fixed rules (the tasks, projects, tools, dates and metric it mentions), not by the model. The numbers in the findings are always exact; treat the AI's wording as a summary.

Not seeing it? Your browser doesn't expose the APIs, the device doesn't meet the requirements, or (Edge) the Prompt API flag is off. The live check on the project page tells you which features your current browser supports.


Privacy

Everything runs on your machine. The CLI makes no network requests, and neither does the report page. The optional AI summary and Ask AI chat use the browser's own on-device model, so your data never leaves your computer for them either. If the browser still has to fetch that model, it does so itself, and only after you click Enable on-device AI. Chat history stays in your browser's local storage until you clear it.

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.4.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.4.0
File Size Uploaded
claudon-0.4.0.tar.gz 72.0 kB Details

Built distribution (wheel)

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

Total release size: 125.1 kB

Release files / claudon-0.4.0.tar.gz

Download URL claudon-0.4.0.tar.gz
Size 72.0 kB
Tags Source
SHA-256 checksum
How to use checksums
15888c883748d49f2f8dc8d25025f81794a436ff125ab12bb387f74827f64c6e
BLAKE2b-256 checksum
How to use checksums
33dcd0380255e621def4a4990519286a6f7b66b111f9e3f85bb3e448a2204a92
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.4.0-py3-none-any.whl

Download URL claudon-0.4.0-py3-none-any.whl
Size 53.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b765bec26c2e0d5f16b8edd92a3b03259473d094df419966792762b64d664c83
BLAKE2b-256 checksum
How to use checksums
16dcc25f1840effa8377a713c3d3b18ea8d72ebe43755e388d988bbcf801cf4d
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

This release

0.4.0 This release

2 release files

0.3.0

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