LIVE LOCALLY · OFFLINE WHEN EXPORTED

Explore usage without sending it away

tokens serve updates through a loopback-only local service. tokens dashboard exports the same interface as a self-contained offline HTML file.

Open the live dashboard

tokens serve --open

tokens serve \
  --source claude \
  --source gemini \
  --source codex

tokens serve --anonymize --since 2026-08-01

The server binds only to 127.0.0.1 and checks safe file signatures every five minutes by default. The page can switch between 1, 5, 15, or 30 minutes, or pause refresh. If logs change, it reuses the parsed-file cache, publishes a new snapshot only when report data changed, and updates the current page without a full reload.

Export an offline snapshot

tokens dashboard --open

tokens dashboard --anonymize --since 2026-08-01

The regular and pseudonymized exports use separate filenames and never overwrite one another. Exported HTML is a generation-time snapshot and does not watch for later log changes.

Core analysis

Day, week, and month

Switch granularity while trends, KPIs, model mix, project and session tables, and relevant details stay synchronized.

Visible model filters

Standard checkbox chips support select all, clear, and one-step undo. No hidden double-click, right-click, or modifier gesture is required.

Period probe and comparison

Open a period to recompute its local view. Hold C for a temporary previous-period outline, or explicitly pin the comparison.

Projects and sessions

Where logs expose identifiers, inspect project trends and retained per-turn token sequences. A session keeps at most the most recent 200 turns.

Context composition

Fresh Input, Output, Cache Read, Cache Write, and Other reconcile to each source total. Cache Read is not presented as confirmed monetary savings.

Signal Dock and Exactness

Preview compatible views from a model, period, project, or session. Hold Alt/Option to expose exact values and semantic denominators.

Data Trail

Press I to organize the current range into a non-modal evidence path:

  1. Confirm the selected range and model coverage.
  2. Choose a temporary model clue without silently changing the global filter.
  3. Choose one parallel branch: project, session, or context composition.
  4. Open the existing detailed module that supports the observation.
No invented relationshipProject and session evidence share a range and temporary model, but remain separate aggregates. The dashboard does not infer a project-to-session pairing from two independent relationships.

Optional labs

Exact tables plus CSV and Markdown exports remain available alongside charts. Module preferences are stored locally. Labs can be hidden when the core report is enough.

Key shortcuts

KeyAction
1 / 2 / 3Day / week / month.
TCycle system, light, and dark themes.
IOpen or return to Data Trail.
Hold Alt/OptionTemporarily show exact values.
Hold CTemporarily compare with the previous period.
Cmd/Ctrl KOpen the command palette.
EExport the current CSV view.
?Open in-dashboard help.
EscClose the active layer, then clear pinned context or leave a period probe.

Privacy boundary

The regular dashboard is sensitiveIt may embed complete working directories, session identifiers, derived titles, exact dates, and retained token sequences—not only the rows currently visible on screen.

--anonymize replaces project, session, and title identifiers with report-scoped aliases. It still retains exact dates, models, values, aggregate relationships, and replay sequences, so it is pseudonymization rather than guaranteed anonymity.

Data Trail, Signal Dock, temporary exactness, and held comparison state stay in page memory. They do not add project or session IDs to URLs or localStorage. This browser-state boundary does not remove sensitive entities already embedded in a regular report.

Read the full privacy guide before sharing any generated file.