zoetrope logo

zoetrope

Watch a Claude Code session as a live flow graph, in your terminal or your browser.

zoetrope.svgzoetropezoetrope.svgbuildzoetrope
Website GitHub

What is it?

What it is

zoetrope is a local, read-only visualization tool that renders Claude Code sessions as interactive flow graphs in the terminal or browser. It uses the portable core library (compilable to any target including WebAssembly) with ratatui for terminal UI and rataflow for the node-graph widget, building on the ratatui and rataflow projects.

Why it exists

To provide a visual, interactive representation of AI agent sessions (from Claude Code) that allows users to watch, replay, and inspect agent interactions, tool calls, and workflows entirely locally with zero network exposure.

Who should use it

Developers using Claude CodeAI agent developersTechnical users who want to visualize agent workflows

Who should avoid it

Non-technical usersUsers not working with Claude CodeThose who prefer a simple log viewer without interactive graph

Stars over time

No change stars in the last 1 day

665665
Aug 30, 2026Aug 30, 2026

How it works

A quick walkthrough in plain English

How zoetrope works in 4 steps

Step 1 of 4

Something triggers the flow

A schedule, webhook, or manual click tells zoetrope to start.

Features

Live flow graph visualization of Claude Code sessions
Graph nodes per agent (main session, subagents, workflow groups)
Status, current tool, tool count, and output token display on each card
Animated edges that settle when agents finish
Tool calls surfaced as chips with timing (e.g., '⚒ bash ×5')
Minimap showing viewport position relative to graph size
Scrubbable timeline for both live and replayed sessions indexed by event
Time travel capabilities: scrub, pause, step between prompt eras, snap back to live edge
Optional gap compression to skip dead air or maintain real-time pacing
Agent inspection showing provenance (prompt, reasoning, model, tool calls with timings)
Session information overlay (mode, permissions, queued ops, file edits, last prompt)
Headless inspection with `zoe inspect` printing the whole tree
Browser-based interface via WebAssembly compilation
CLI commands: follow, replay, speed control, inspection, etc.
Support for reading ongoing sessions or finished recordings

Advantages

  • Local-first, zero-network design - read-only and no data leaves the machine
  • Built on established libraries (ratatui, rataflow, ratzilla) with verified portability
  • Real-time visualization of agent interactions and tool usage
  • Event-indexed timeline enables precise time travel and accurate playback
  • Detailed tool call tracking with timing information for transparency
  • Cross-platform support (macOS, Linux, Windows) and browser compatibility
  • Graceful degradation when encountering unknown or malformed transcript records
  • Reliable and stable despite undocumented internal transcript format (skips unrecognized records)

Disadvantages

  • Requires Rust toolchain for the CLI version (though prebuilt binaries and browser WASM are available)
  • Transcript format is undocumented and internal to Claude Code - changes may break functionality
  • Heavy dependency on specific Claude Code transcript structure limits future flexibility
  • Browser frontend requires separate wasm32 build process and is excluded from root workspace
  • Complexity of maintaining two independent frontends (terminal and web) adds maintenance overhead

Installation

cloud

No install at all: **[try it in your browser](https://zoetrope.furkankly.dev/app)**. Drop a transcript on the page and get the same graph.

native

**Homebrew** — macOS and Linux:

```bash
brew install furkankly/tap/zoetrope
```

**Cargo** — needs a Rust toolchain:

```bash
cargo install zoetrope
```

**Prebuilt binaries** — no toolchain needed. Every [release](https://github.com/furkankly/zoetrope/releases) carries archives for macOS (Apple Silicon and Intel), Linux (`musl`, arm64 and x86_64) and Windows (x86_64). Unpack one and put `zoe` on your `PATH`.

Or build from source:

```bash
git clone https://github.com/furkankly/zoetrope
cd zoetrope
cargo build --release
./target/release/zoe
```

FAQ

How do I install zoetrope?

You can install zoetrope via Homebrew (`brew install furkankly/tap/zoetrope`), Cargo (`cargo install zoetrope`), or by downloading prebuilt binaries from the releases page. The command is `zoe`. Alternatively, you can try it directly in your browser at https://zoetrope.furkankly.dev/app without installing anything.

What does zoetrope do?

zoetrope reads Claude Code JSONL session transcripts and visualizes them as a live flow graph in your terminal or browser. It shows the main agent, subagents, workflows, and tool calls as nodes in a graph, updating in real-time for live sessions or replaying finished ones with accurate timing.

How do I use zoetrope to view a session?

Run `zoe` to follow the current project's live session, `zoe <dir>` to follow another project's session, or `zoe <file.jsonl>` to replay a recording. Use `zoe inspect <file.jsonl>` to print the session tree headlessly without the TUI. You can also use `--follow` to open a recording at its live edge and `--speed N` to adjust playback speed.

Is zoetrope safe to use with my session data?

Yes, zoetrope is completely read-only and makes no network requests. It has zero network dependencies in its dependency tree, and tokio is included without its `net` feature. All processing happens locally on your machine, and nothing leaves your system.

What happens if Claude Code updates its transcript format?

zoetrope is designed to degrade gracefully rather than break. Unrecognized records are skipped, missing fields fall back to defaults, and malformed lines never crash the session. If a new Claude Code release causes rendering issues, you can open an issue on the GitHub repository.

Can I use zoetrope in a browser?

Yes, the same engine that powers the terminal app is compiled to WebAssembly and available at https://zoetrope.furkankly.dev/app. You can open sessions from disk or drag and drop transcript files directly onto the page, with all processing staying local to your browser.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for zoetrope

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
zoetrope | MushyBook