zoetrope CLI

Draws a Claude Code or Codex session as a graph of agents and tool calls, live or replayed from a recording

  • 1,142 ★ on the repository
  • Last commit
  • MIT
CLI

Minimal access

Why this level

  • Only reads session transcripts, writes nothing and makes no network calls
  • Transcripts contain prompts and command output, so do not share opened recordings with third parties
All reasons and checks

furkankly/zoetrope

Install

Manual install

brew install furkankly/tap/zoetrope

Works on macOS and Linux. The program starts with the zoe command.

Access and checks

How we review

Minimal accessThe tool runs nothing and makes no network calls.

  • Only reads session transcripts, writes nothing and makes no network calls
  • Transcripts contain prompts and command output, so do not share opened recordings with third parties

This is third-party code. Review the repository files before installing.

What it does

zoetrope reads a Claude Code or Codex session transcript and turns it into a graph in your terminal. The graph shows the main agent, the subagents it spawned and the tools each one ran. An agent card carries its status, current tool, call count and output tokens, and calls hang under the card as chips that resolve to a success or error mark. A running session is followed live. A finished one replays at the pace of the session's own timestamps, and the `--speed` flag changes the rate. The timeline scrubs backwards: agents become unfinished again, call counts drop and the graph shrinks to how it stood at the chosen moment. Clicking an agent opens the prompt that spawned it, its model and every call with timings. The program starts with the `zoe` command. `zoe inspect` prints the session tree without the interface, so it works in scripts and over SSH. The same program compiled to WebAssembly runs in a browser: you open a transcript from disk or drop it on the page, and it stays on your machine.

Who it is for. For developers who run Claude Code or Codex with subagents and want to see who did what and why a session dragged on.

Good fit when

  • Claude Code spawned several subagents, and a text log does not show which one spent the time and tokens
  • You need to walk through a finished Codex session step by step: `zoe <file.jsonl>` replays it at the original pace
  • A long task is running and you want to watch it from the side without disturbing the agent: `zoe` with no arguments attaches to the project's current session
  • A report needs the agent tree without the interface: `zoe inspect <file or id>` prints it to the console
  • You work in the Herdr multiplexer and want to open a session graph from an agent pane with one key

Not a fit when

  • You need cost tracking by tokens and days: zoetrope draws session structure and does not compute spend
  • You use another agent such as Gemini CLI or Cursor: only the Claude Code and Codex transcript formats are recognized
  • You want a tool that steers the session: zoetrope only reads the transcript and sends nothing to the agent

Example request

Install zoetrope and show me the graph of my latest Claude Code session with its subagents

Limitations

  • The Claude Code and Codex transcript formats are undocumented and can change without warning. zoetrope skips unfamiliar records, but a new agent release may still render oddly, and the author asks for an issue in that case.
  • Two agents are supported: Claude Code and Codex, and for Codex both CLI and desktop app transcripts are read.
  • Building from source needs a Rust toolchain. Homebrew and the prebuilt binaries for macOS, Linux and Windows do not.

How to disable. zoetrope installs no hooks and changes no agent settings, so removing the program is enough: `brew uninstall zoetrope` for Homebrew or `cargo uninstall zoetrope` for a Cargo install. A prebuilt `zoe` binary can simply be taken off the PATH.

FAQ

How do I view a Claude Code session as a graph?

Install zoetrope and run `zoe` in the project folder. With no arguments it finds the project's newest session and follows it live. `zoe <file.jsonl>` opens a specific recording, and `zoe <id>` finds a session by id or a prefix of one.

Does zoetrope work with Codex?

Yes, Codex CLI and the Codex desktop app are supported alongside Claude Code, with transcripts read from `~/.codex/sessions/`. zoetrope detects the format from the file content, and `--provider codex` forces it.

Does session data leave my machine?

No. According to the author, the dependency tree has no HTTP client and tokio is pulled in without its `net` feature, which `cargo tree` can confirm. The browser version also reads the transcript locally.

How do I speed up or slow down a replay?

Set the rate with `--speed`, for example `zoe <file.jsonl> --speed 16`. The default is 8.0. The `s` key toggles gap compression and `space` pauses playback.

Can I open a session without installing anything?

Yes. The page zoetrope.furkankly.dev/app runs the same program in a browser through WebAssembly. Drop a session transcript on it and the graph opens with no install.

Discussion

No questions or reviews yet.

CLI tools

Reads Claude Code session logs as a conversation: tool calls, token counts and a live tail of a running session.

CLIExtended access385Repository stars

agentplay turns local Claude Code, Codex and Cursor sessions into a file map and a replayable step timeline.

CLIMinimal access352Repository stars

Three Claude Code plugins: the savvy-flow orchestrator with tiered subagents and two mods for a progress panel and a cache timer

PluginExtended access353Repository stars

Session monitor for Claude Code, Cursor, Codex and six more agents in a terminal, window or HTTP API, with chat cleanup and search

CLIExtended access194Repository stars

Rust terminal client claude-rs for Claude Code: the session stays in terminal scrollback, output does not flicker, tmux works.

CLIExtended access275Repository stars

A desktop GUI app for Claude Code: session management, custom agents and a token cost dashboard

CLIExtended access22.4KRepository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
zoetrope (this card)no1,142
opcodeno22,433a desktop app for managing Claude Code sessions that draws no subagent graph in the terminal
Coding Agent Session Search (cass)no1,200searches the history of sessions across agents and does not draw the structure of one session

README in short

The repository page opens with three install routes: Homebrew, Cargo and prebuilt binaries. It then gives a table of supported agents, a description of the Herdr plugin, the launch commands and a section on the graph, the timeline and the agent detail panel. It closes with design principles: an IO-free core that also compiles to WebAssembly, a warning about undocumented transcript formats and contribution rules.

README badge

Report a problem

Foxx AIzoetrope
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.