See what your coding agent actually did. tracebox records every Claude Code session — tools called, files touched, commands run, tokens spent — into an auditable timeline, and flags where the agent claimed an edit that never landed.
100% local. Zero telemetry. Your session data never leaves your machine.
Requires Node.js ≥ 20.
npm install -g tracebox
tracebox install # registers hooks in ~/.claude/settings.json
tracebox list # your past sessions are already there
tracebox ui # open the web UIOr run without installing:
npx tracebox listgit clone https://github.com/VictorLG98/tracebox.git && cd tracebox
npm install && npm run build && npm link| Command | What it does |
|---|---|
tracebox install |
Register collection hooks (Claude Code) |
tracebox list |
Recent sessions: project, started, events, tokens |
tracebox show <id> |
Timeline of one session |
tracebox stats |
Token usage by day and by project |
tracebox dashboard |
Fleet-wide metrics summary in the terminal |
tracebox ui |
Open the local web UI (Ctrl-C to stop) |
tracebox ui ingests the latest data, starts a local server on 127.0.0.1
(no auth, no network — it binds loopback only), and opens your browser. It
serves a small single-page app with three views:
- Dashboard (home) — fleet-wide metrics (sessions, tokens, files, average duration, discrepancy rate, active-day streak), a GitHub-style activity calendar (one cell per day, shaded by session count or token volume, hover for the daily breakdown, click a day to jump into that day's sessions), plus token-by-project and top-tool breakdowns. Filter everything by project and time range.
- Session list — project, date, duration, tokens, files touched, and a badge on sessions with a claims-vs-reality discrepancy.
- Session view — three zones: a summary header, a filterable/searchable timeline (subagent events nested), and a claims-vs-reality panel.
For each file the agent tried to edit, the panel shows whether the edit
succeeded (✓), failed (✗), or was attempted with no recorded
outcome (⚠). This is a structural, deterministic comparison — attempts come
from the agent's Edit/Write calls, outcomes come from the hook results.
No text analysis, no guessing.
The "reality" signal requires hooks (tracebox install). Sessions recorded
before hooks were installed still show attempted edits, marked ⚠ with a
"hooks not installed" note — never a blank screen.
Claude Code hooks append raw events to ~/.tracebox/raw/ (the collector
never fails and never slows your session). Transcripts under
~/.claude/projects/ are parsed on demand for token usage — which is why
sessions from before you installed tracebox show up too. Everything is
normalized into SQLite at ~/.tracebox/db.sqlite.
MVP: Claude Code only. The ingestion layer is adapter-based — other agents are on the roadmap.
