← All tools

tanghong123/claude-replay

AI Agent
Popularity 65 Updated Development & Build

Interactive, read-only viewer for Claude Code session transcripts (like `claude --resume`, but read-only).

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

claude-replay

An interactive, read-only viewer for AI coding-agent session transcripts — like claude --resume, but you can only read: scroll, fold, search, and live-tail. Reads both Claude Code (~/.claude/projects/) and Codex (~/.codex/sessions/) transcripts, auto-detecting each. A Rust + ratatui TUI that renders a session the way the agent does (assistant text, thinking, tool calls, +/- diffs, markdown, syntect-highlighted code) without ever continuing or mutating the session.

Extracted from claude-toolbox (the justdoit/ module), where it began life as claude-peek-v2. Its bash predecessor, claude-peek, still ships there.

Install

Homebrew (macOS / Linux) — recommended:

brew install tanghong123/tap/claude-replay

This taps tanghong123/tap and puts the claude-replay command on your PATH, so you can run it from anywhere:

claude-replay --latest      # open your most recent session
claude-replay --version

On macOS and Linux (x8664 and arm64) this downloads a prebuilt binary — no Rust toolchain, no compile. Later, brew upgrade claude-replay updates it and brew uninstall claude-replay removes it. (Equivalent two-step: brew tap tanghong123/tap then brew install claude-replay.)

Prebuilt binary (no Homebrew, no Rust) — cargo-binstall grabs the release tarball for your platform:

cargo binstall claude-replay

Or download a claude-replay-<target.tar.gz from the releases page directly (static musl builds for Linux; run on any distro).

From source (needs a Rust toolchain):

cargo install --path .          # → ~/.cargo/bin/claude-replay
# or
cargo build --release           # → target/release/claude-replay

Usage

claude-replay                                 pick from this dir's sessions (Claude + Codex)
claude-replay <session-id | path/to.jsonl>   render that transcript (agent auto-detected)
claude-replay --latest                        newest session for THIS dir or an ancestor (not the global newest)
claude-replay --agent codex                   only show Codex sessions (or --agent claude)
claude-replay <id> -f                         follow a running session live
claude-replay <id|--latest> --dump -          plain text to stdout (no TUI) — for pipes/tests
claude-replay <id|--latest> --dump [stem]     write <stem>.txt + <stem>.ansi (deduced stem if omitted)
claude-replay <id|--latest> --dump --width N  dump at width N (default: terminal width, else 100)
claude-replay <id|--latest> --dump --full     dump with everything expanded (default folds like the TUI)
claude-replay <id|--latest> --dump-html [stem] export a single self-contained <stem>.html (deduced stem if omitted)
claude-replay <id|--latest> --dump-html -      write the HTML page to stdout (no TUI) — for pipes/tests
claude-replay <id> -f --dump-html [stem]       live: also write an append-only <stem>.jsonl the page follows

claude-replay <id -f --html live HTML: also follows the session (new turns stream in)


**Multi-agent.** With no argument, the picker merges this directory's sessions from
**every agent** — Claude Code (`~/.claude/projects/`) and Codex
(`~/.codex/sessions/`) — into one list, each row tagged with its agent; one session
opens straight in. The agent for any opened file is auto-detected from its contents,
so an explicit path or `--latest` just works. `--agent claude|codex` filters the
picker/`--latest` to a single agent. (`CODEX_HOME` / `CODEX_SESSIONS_DIR` override
the Codex root.)

`--dump` renders through the same pipeline as the live viewer and applies the same
default fold policy, so its output matches what the TUI shows (add `--full` to expand
every block).