mrkeyoor.com_
Tue 01 Sept 17:44 UTC
Dev Toolsevaluationupdated 26 Aug 2026

zoetrope review

Zoetrope turns Claude Code's local JSONL session transcripts into a live or replayable graph of the main agent, subagents, workflows, and tool calls. It runs as a terminal application or in a browser, helping developers inspect how an agent reached an outcome without uploading the transcript.

+204stars / 7d
Verdict

Our build took 30 seconds and all 380 tests passed in 13 seconds, making Zoetrope unusually easy to trust for a first release. Install it if Claude Code subagents have made raw JSONL too hard to follow and local-only inspection matters. Skip it when cost tracking is the decision, or when an undocumented transcript format is unacceptable operationally.

We ran it

Lab card: what happened when we ran zoetropeScreenshot of zoetrope (github.com/furkankly/zoetrope)
Install✓ · 14s112 packages
Build✓ · 30s
Tests✓ · 13s380 passed · 0 failed of 380 (cargo test)
Repo111 files~14,906 lines of source · 16.9 MB · 4 CI workflows

Answers from our run

Does zoetrope build from source?

Dependencies installed in 14 seconds (112 packages), and the build succeeded in 30 seconds. We cloned commit 077707d into a clean Debian container with 3 CPUs and no project-specific setup.

Do zoetrope's tests pass?

Yes: 380 of 380 passed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use zoetrope?

Codex, OpenCode, or other agent users today: the README describes Claude Code's transcript layout, and Codex rollout support is still an open request.

What are the alternatives to zoetrope?

ccusage, Claude Code Usage Monitor, Claude DevTools. Our build took 30 seconds and all 380 tests passed in 13 seconds, making Zoetrope unusually easy to trust for a first release.

Setup5/5Brew, binaries, Cargo, and browser routes all avoid service setup
Docs5/5Exact commands, controls, format limits, and architecture links
Community3/5Fresh activity and a small queue, but a very young user base
Maturity3/5Excellent test result, held back by v0.1.0 and an internal format

Who it’s for

Claude Code users debugging long sessions with subagents and many tool calls.
Developers who want to replay a session against its recorded timestamps and scrub backward through state.
Teams reviewing agent provenance, prompts, models, tool timing, and file-edit summaries locally.
Rust users who prefer one native binary and a headless inspect command for remote machines.

Who it’s NOT for

Codex, OpenCode, or other agent users today: the README describes Claude Code's transcript layout, and Codex rollout support is still an open request.
Organizations that prohibit tools from reading prompts and reasoning: the agent detail view intentionally exposes spawn prompts, surrounding reasoning, models, and tool calls.
Anyone requiring a stable vendor transcript contract: the README says Claude Code's JSONL format is undocumented and can change without warning.
Teams needing cost governance rather than execution structure: Zoetrope shows output tokens and tool activity, while dedicated usage trackers focus on spend and limits.
Risk-averse production adopters seeking a long release record: v0.1.0, published August 18, 2026, is the first release.

Setup reality

Our Rust sandbox installed 112 packages in 14 seconds and built the project in 30 seconds. cargo test finished in 13 seconds with 380 passed and 0 failed. The checkout was 16.9 MB, with 111 files and about 14,906 source lines.

Ordinary users can avoid a source build. The README offers Homebrew, cargo install zoetrope, prebuilt archives for major desktop platforms, and a browser build that accepts a dropped transcript. The native command automatically looks under Claude Code's ~/.claude/projects/ directory unless you pass a directory or JSONL file.

No account, API key, database, or external service is described. The project says native and browser processing stay local, and it explains that the Rust dependency tree contains no HTTP client. The main compatibility risk is the undocumented Claude Code transcript format; unfamiliar records are skipped and missing fields fall back, but a format change can still make the graph incomplete.

The graph exposes agent structure that JSONL hides

Claude Code writes session transcripts under ~/.claude/projects/, but a line-oriented log is awkward when one main agent spawns subagents and workflows. Zoetrope folds those records into a graph. Each agent card shows status, the current tool, tool count, and output tokens. Tool calls appear beneath the agent, and the graph nests workflow children under their recorded parent. This is useful when the question is who did what, when, and under which prompt.

The timeline works for both recorded and running sessions. Give zoe a JSONL file and it replays from the start at a default speed of 8.0. Add --follow to begin at the live edge, or point it at a directory so it finds the newest session. You can pause, step between prompt eras, compress inactive gaps, and scrub backward. When the playhead moves back, completed agents become active again and later tool counts disappear.

Four install routes avoid running a service

Homebrew users can install from the author's tap. Rust users can run cargo install zoetrope, while release archives cover Apple Silicon and Intel macOS, Linux on arm64 and x86_64 with musl, and Windows x86_64. A hosted WebAssembly build accepts a transcript through the browser. The README says browser processing remains local, so trying the interface does not require an account or a server.

The native binary is called zoe. Running it with no arguments follows the newest session for the current project. zoe inspect <file.jsonl> prints the complete session tree without a terminal interface, which is handy over SSH or in saved diagnostics. Interactive controls cover pan, zoom, agent selection, a minimap, camera follow, and a session overlay with permissions, queued operations, edits, and the latest prompt.

What happened when we ran it

Our sandbox installed 112 Rust packages in 14 seconds. The build completed in 30 seconds, then cargo test ran for 13 seconds and reported 380 passed with 0 failed. That is the cleanest lab result in this review set so far. The measured checkout at commit 077707d contained 111 files, roughly 14,906 source lines, and occupied 16.9 MB.

The repository had 4 CI workflow files, no Dockerfile, and no conventional tests directory. The lack of a tests folder is not a lack of tests: Cargo found and passed 380 of them. We did not benchmark rendering speed, memory use on huge transcripts, terminal compatibility, or the WebAssembly build. The measured outcome establishes that the native Rust workspace installs, builds, and passes its available suite in a fresh unprivileged container.

No credentials or network service were needed for that path. Zoetrope says its dependency tree has no HTTP client and that Tokio is compiled without its networking feature. That claim is inspectable through cargo tree, although our supplied lab block did not independently audit network calls. The practical privacy boundary is still your machine account: transcript files can contain prompts, reasoning context, tool arguments, and file activity that other local users should not read.

Claude Code's internal format is the main fault line

The README is frank that Claude Code's JSONL format is undocumented. Zoetrope parses unfamiliar records defensively, skips what it does not know, tolerates missing fields, and avoids crashing on malformed lines. That is the right failure mode for a viewer, but graceful degradation may produce an incomplete graph. After a Claude Code update, an empty branch or missing tool can mean parser drift rather than an uneventful session.

Support is narrow by design. The repository's only open issue excluding pull requests, filed August 24, asks for Codex session rollouts as another transcript source. That request is evidence that Codex does not work today, not a delivery promise. The project was pushed on August 25, 2026, and v0.1.0 shipped on August 18. Development is current, though one first release cannot establish long-term compatibility.

Local replay helps review, but it is not a cost dashboard

Agent selection reveals the prompt that spawned a worker, reasoning around it, the model, tool calls, and their timings. That is strong material for debugging delegation or explaining why a session touched a file. The immutable event model also makes backward seeking credible: display time changes while recorded content time stays fixed. The design documentation describes a portable core shared by the terminal and browser frontends.

Output-token counts appear on cards, but Zoetrope's main abstraction is execution flow. ccusage is a better choice for totals and cost reports. Claude Code Usage Monitor focuses on burn rate and limit warnings. Claude DevTools reaches toward a broader visual diagnostic dashboard. Pick based on the question: graph structure and replay favor Zoetrope; budget and quota questions favor the usage tools.

The first release is already useful for one exact job

Zoetrope does not need a database, daemon, telemetry account, or Claude API credential. Our run's 380 passing tests back the careful event-folding design, and the prebuilt binaries remove Rust from the user setup. For a developer staring at a tangled multi-agent transcript, the graph and time travel can answer questions much faster than searching JSONL by hand.

The recommendation stays narrow. Keep sensitive transcripts protected, verify the graph after Claude Code upgrades, and do not assume skipped records are harmless. If your sessions are simple, the raw transcript or zoe inspect may be enough. If subagents and workflows are routine, the 30-second source build and local processing make Zoetrope an easy trial.

Alternatives

ProjectWhat it isPick it when
ccusageA command-line analyzer for Claude Code token use and cost across local sessions.pick this instead when spending, model totals, and usage windows matter more than the agent graph.
Claude Code Usage MonitorA live terminal monitor for Claude Code usage limits, burn rate, and predictions.pick this instead when you want warnings about rate limits and projected usage during a session.
Claude DevToolsA local visual inspector for Claude Code logs, tool calls, tokens, and subagents.pick this instead when you prefer a fuller browser dashboard with token and context inspection.

What people are saying

  1. [velocity-scout] furkankly/zoetrope

Sources

  1. Zoetrope README
  2. Zoetrope v0.1.0 release
  3. Zoetrope design notes
  4. Codex rollout support request

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →