Observed since 20 Oct, 21:47 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A local web UI for browsing and analyzing AI coding assistant chat history
Browse, search, and analyze your AI coding assistant chat history — entirely local, entirely private.
Your AI coding assistant writes a small mountain of JSONL session files into
~/.claude/projects/ — useful, but unreadable and impossible to search by hand.
Clau-Decode reads those files locally, indexes them into SQLite, and serves a
fast browser UI with full-text search, conversation rendering, analytics, and a
recap engine.
# Install as an isolated tool — its own virtualenv, on your PATH, nothing
# touches your system Python. Use whichever you already have:
uv tool install git+https://github.com/Comradery64/Clau-Decode.git
# or:
pipx install git+https://github.com/Comradery64/Clau-Decode.git
clau-decode # opens http://localhost:4242
# update later — re-pull the latest from main (git installs need --force;
# plain `upgrade`/`reinstall` won't fetch new commits):
uv tool install --force git+https://github.com/Comradery64/Clau-Decode.git
# or:
pipx install --force git+https://github.com/Comradery64/Clau-Decode.git
Requires Python 3.10+. The wheel ships the pre-built frontend, so no Node.js is needed — only for development. All data stays on your machine — no telemetry.
Just trying it out? Run without installing:
uvx --from git+https://github.com/Comradery64/Clau-Decode.git clau-decodePrefer not to install? Run it straight from a clone — see Development. Advanced:pip installworks too, but only inside an activated virtualenv — never your system/Homebrew Python (PEP 668 will block it, and a global install can shadow other checkouts).
This repo's history has been rewritten. If an old clone fails to update (e.g. fatal: refusing to merge unrelated histories, or diverged-branch errors), reset it to the new history:
git fetch origin && git reset --hard origin/main
Cmd+K global search across every session — content, tool use, file paths, thinking blocksCmd+O expand/collapse all tool + thinking blocksCmd+E toggle full tool output without truncationclaude terminal, or both side by sideclaude already owns the sessionCmd+S to save, dirty-state indicator, and confirm-on-discardclaude CLI in interactive TUI mode through a hidden PTY,
so messages use subscription-backed interactive behavior| Flag | Description | Default |
|---|---|---|
--path PATH | Add a scan path (repeatable) | auto-detected |
--port PORT | Override the listening port | 4242 |
--host HOST | Bind host | 127.0.0.1 |
--expose | Bind to 0.0.0.0 (accessible on the local network) | off |
--no-open | Don't open the browser on startup | opens browser |
--enable-edit | Enable message editing + deletion (creates a backup before every write) | off |
--force-refresh | Clear the cache and force a full rescan | off |
--since YYYYMMDD | Only include sessions on or after this date | all |
--version | Print version and exit |
--exposemakes your chat history visible to anyone on the same network. Use it on trusted networks only.
Subcommands:
| Command | Description |
|---|---|
clau-decode | Launch the web UI (default) |
clau-decode scan | Rescan and print summary |
clau-decode today | Show today's token usage and cost |
clau-decode stats | Print statistical metrics |
clau-decode tips | Print optimization tips |
| Shortcut | Action |
|---|---|
Cmd+K | Open global search |
Cmd+O | Expand/collapse all tool + thinking blocks |
Cmd+E | Toggle full tool results |
Cmd+S | Save (in file editor) |
Cmd+I | Toggle chat panel |
Cmd+B | Toggle sidebar |
Cmd+, / Shift+Cmd+, | Open settings |
Cmd+/ | Open keyboard-shortcuts menu |
Esc | Close dialog / search |
Settings are saved to ~/.config/clau-decode/config.json. Edit them in the UI,
or directly:
{
"data_paths": ["~/.claude"],
"theme": "system",
"auto_open_browser": true,
"port": 4242,
"edit_enabled": false
}
The session index lives at ~/.local/share/clau-decode/index.db (durable, so it
survives cache clears). To force a full rescan, run clau-decode --force-refresh —
prefer this over deleting the DB, which also discards stars, archives, and custom
titles.
Clau-Decode is a local-first FastAPI server that scans your AI coding assistant's JSONL session files into a SQLite index, serves a React + TypeScript SPA, and drives the Claude CLI through a hidden PTY for in-app sessions.
See ARCHITECTURE.md for a system diagram and deeper notes.
git clone https://github.com/Comradery64/Clau-Decode
cd Clau-Decode
# Install backend deps (into an isolated .venv) + build the frontend
make dev # = uv sync && build frontend
# Run the app from source — in the project venv, so it always runs THIS
# checkout (no global install, no shadowing):
uv run clau-decode --no-open
# equivalently, as a module from the checkout root:
uv run python -m clau_decode --no-open
# (make run wraps this)
# Run tests
make test
# Rebuild the frontend only
make frontend
Requires Python 3.10+, uv, and Node.js 20+ for
frontend development.
GitHub Actions runs lint, type-check, and the Python + frontend test suites on
every PR — see .github/workflows/ci.yml.
Pull requests are welcome. Please read CONTRIBUTING.md for
the dev setup, code style, and commit conventions, and our
Code of Conduct.
If you discover a security issue, please follow the responsible disclosure
process in SECURITY.md — do not open a public issue.
ARCHITECTURE.md — system diagram and component overviewCONTRIBUTING.md — dev setup and PR guidelinesCODE_OF_CONDUCT.md — community expectationsSECURITY.md — responsible disclosureCHANGELOG.md — release notesClau-Decode is inspired by, and built around the file format of, Claude and Claude Code from Anthropic. This project is not affiliated with, endorsed by, or sponsored by Anthropic, PBC. Claude and Claude Code are trademarks of Anthropic, PBC; all references in this project are nominative.
A personal note from the author — I didn't write the code in this repository or build any of the underlying tools. I sat at my computer, typed into it, and kept asking it for more. The actual line-by-line authoring was done by AI coding assistants — Anthropic's Claude (Sonnet and Opus) and Z.ai's GLM-5.1, with the latter doing a substantial share of the heavy lifting alongside them. They aren't in the lists below because they're AI models rather than libraries, but they deserve named credit here. The projects, products, and people below did the rest of the real work that made Clau-Decode possible:
Backend (Python)
Frontend (Web)
@xterm/addon-fit (viewport sizing) and @xterm/addon-unicode11 (Unicode 11 wide-character widths)Fonts (bundled — SIL Open Font License 1.1)
The Native view ships these monospace fonts so the in-app font picker works on any machine (a browser terminal can only paint fonts the browser has). Each is © its respective authors and redistributed under OFL-1.1; the full copyright notices and license text live in frontend/src/assets/fonts/LICENSES.md.
Demo reel pipeline
Tooling and platforms
Every project listed above is independently licensed by its respective authors; check each project's repository for terms. If we've missed an attribution, please open an issue.
This project is licensed under the Functional Source License, Version 1.1, with the Apache 2.0 Future License (FSL-1.1-Apache-2.0).
In short:
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.3.2 | 8 Sept 2026 | 11 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:47 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:d16beeab870775e136e2edc20fccfa426fc2bc893d3adade107a260071df35f3