Self-hosted viewer for Claude Code session transcripts - search, replay, audit. Multi-arch.
1.8K
See what your agents actually did. A local, self-hosted web viewer for your Claude Code session transcripts — read, search, replay, and audit every session you have ever run. Your transcripts stay on your machine; nothing is uploaded anywhere.

Recensa indexes the raw JSONL under ~/.claude/projects/ into a local SQLite
database and serves a three-pane reader at http://localhost:7788: full-text search
across all sessions, folded tool calls with real diffs, per-session token/cost
statistics, subagent and teammate rosters with jump-to-call-site, compaction history
with full-conversation reconstruction, live tail over WebSocket, and fourteen themes.
Reading never modifies your transcripts. The index is a disposable cache; your pins, tags, and notes live in a separate database that survives every rebuild.
# macOS / Linux
docker run -d --name recensa -p 127.0.0.1:7788:7788 \
-v "$HOME/.claude:/data/claude" \
-v recensa-data:/app/backend/data \
-e RECENSA_PROJECTS_DIR=/data/claude/projects \
s40911120/recensa
# Windows — use PowerShell, not Git Bash (MSYS rewrites the /data/... paths)
docker run -d --name recensa -p 127.0.0.1:7788:7788 `
-v "$env:USERPROFILE\.claude:/data/claude" `
-v recensa-data:/app/backend/data `
-e RECENSA_PROJECTS_DIR=/data/claude/projects `
s40911120/recensa
Then open http://localhost:7788. The first index runs in a background worker; the UI is usable while it fills in.
latest — the most recent tagged release<version> (e.g. 0.1.0) — immutable release tagslinux/amd64 and linux/arm64 (Apple Silicon pulls a native image)| Mount / env | Meaning |
|---|---|
/data/claude (bind mount) | Your .claude directory; its projects/ holds the session JSONL |
/app/backend/data (named volume) | Databases — flags.db holds your pins/tags/notes and cannot be recomputed, so keep the volume |
RECENSA_PROJECTS_DIR | Sessions root inside the container (/data/claude/projects) |
Built for single-machine, local use — no authentication is shipped. Publish the port
to 127.0.0.1 only (as above). Do not expose it to a network without your own auth
and reverse proxy in front. No telemetry, no external network calls.
Content type
Image
Digest
sha256:97fe649dd…
Size
80.8 MB
Last updated
2 months ago
docker pull s40911120/recensa