Spectator is a local-first web app for reviewing Claude JSONL sessions directly from disk. It renders structured timelines, supports fast navigation, and keeps the raw JSON line visible in an inspector.
git clone https://github.com/arach/spectator.git && cd spectator && bun install && bun run build && bun run startEdit spectator.config.json to point at your local log roots:
{
"roots": ["~/.claude/projects"],
"maxDepth": 5,
"port": 8787
}- Session listing grouped by project with sorting controls.
- Timeline view with category filters, density toggle, and minimap scrubber.
- Command blocks for tagged user messages (
<command-name>,<command-args>,<command-message>,<local-command-stdout>). - Tool calls/results, code blocks with syntax highlighting, and image attachments.
- File history snapshots with quick view and diff previews.
- Raw JSON inspector for every entry.
Run the UI and the local API server in separate terminals:
bun run dev
bun run dev:serverThen visit:
http://localhost:5173
Open a session from the list or jump directly to:
http://localhost:5173/s/<session-id>
If you have Claude file history backups, Spectator will surface snapshot diffs by reading:
~/.claude/file-history
You can override this path in server.ts if needed.
- Long code blocks and diffs are truncated to the first 10 lines for readability.
- The initial pass is focused on Claude JSONL. OpenAI support is planned next.
bun run build
bun run start