A native desktop browser for Claude Code, Codex, and Gemini CLI — read, search, and manage local session transcripts from all three in one place.
Faithful replay — thinking chains, tool-call pairings, structured diffs, inline screenshots.
Fast search — cross-project global hit (⌘⇧F) jumps to the exact message; one-click resume in Terminal.
Deep stats — aggregate token spend and cost; slice by project, model, or tool.
Read-only safety — original JSONL is never touched; delete is a move to shared trash, never rm.
Flexible export — single session or batches to offline-readable Markdown or HTML.
Features
- 🗂 Unified project view — group sessions by working directory across both CLIs
- 💬 Faithful chat replay — text, thinking blocks, tool calls, structured diffs, inline images
- 🔎 In-session search with scope — search across the whole conversation or scope to user messages, agent replies (incl. edits), or tool noise; prev / next jump + match counter
- 🌐 Global search (⌘⇧F / Ctrl+Shift+F) — Algolia-style overlay over the current agent, scoped to session titles and your own messages; click a hit to jump straight to that message with a flash highlight; recent queries with single-item removal
- 🔃 Session list search & sort — keyword search runs on the Rust side, matching session titles and your message text (cancellable mid-typing); sort by recency / size / message count, or show only ones with an ID
- 🪗 Collapse / expand all tool calls — one click to hide tool-call clutter and focus on the conversation
- 📤 Export session — save a single session to Markdown or HTML (native Save-As, offline-renderable HTML with inlined avatars / styles)
- 🧰 Multi-select & batch ops — pick sessions in bulk to move them to the trash or export them into a single export-YYYYMMDD-HHMMSS-{md,html}/ folder
- 🔄 Resume or start fresh — open Terminal in a project to resume an existing session (claude --resume <id> / codex resume <id>) or start a brand-new one
- 📡 Live tail — opened session auto-refreshes as the CLI appends new messages; an "● Live" indicator shows the watcher is active, and a "N new ↓" pill surfaces additions when you've scrolled up
- 🗑 Shared trash — soft-delete, preview a deleted session's transcript, restore one or many (multi-select); survives across both agents
- 🏠 Welcome screen — recently opened projects per agent with one-click reopen + per-entry removal
- 📌 Pin / sink projects — color-coded pins on the sidebar; sunk projects go to the bottom
- ✏️ Rename sessions — your new title syncs back to the CLI, so claude / codex resume pickers show it too
- 🌗 Light / dark / system theme — Codex-inspired neutral palette with brand-color accents
- 🌐 i18n with auto-detect — English / 简体中文 / 繁體中文 / 日本語;first launch matches the OS language, falls back to English
- ⚡️ Custom tooltip & agent brand icons — no out-of-place native chrome
- 🖼 Image lightbox for screenshots embedded in transcripts
A native desktop browser for Claude Code, Codex, Grok Build, Kimi Code, Pi, Antigravity CLI, and opencode.Read, search, and manage local session transcripts from all seven in one place.
Plus a tool management page — round up the skills scattered across your agents (duplicates, dead links, the same one stored three times),and take over MCP servers, hooks, and instruction files. Guide →
Sessions Viewer turns local agent transcripts into a searchable workspace. Open a project, inspect exactly what happened, then continue the work from the same place without manually hunting through JSONL files.
> [!TIP]
> New — Tool management. Skills, MCP servers, hooks, and instruction files for all seven agents in one place. Find the duplicate skills and broken links on your machine and repair them, see what your MCP servers cost in context before you type, and dry-run a hook before you trust it. Every change previews the exact file edits first.
>
> → Read the tool management guide
Global search — search across projects and jump to the exact matching message with ⌘⇧F.
Jump to prompt — scan every user prompt in a compact list, then scroll and flash the selected message.
Views history — revisit recent read and chat views, with per-project search and favorites.
Continue the work
Built-in chat — start or resume Claude Code and Codex sessions with model, reasoning-effort (including Opus Ultracode), and permission-mode controls.
One-click resume — open a session in an embedded terminal or in Terminal.app, cmux, iTerm2, Ghostty, or Warp.
Shell tabs — run regular shell commands beside agent sessions; tabs persist across restarts.
Launch arguments — configure per-agent CLI flags such as --dangerously-skip-permissions for new and resumed sessions.
Keep projects organized
Split panes — arrange side-by-side or stacked panes, drag tabs between panes, and keep each project's layout across restarts.
cmux integration — reuse workspaces by working directory, find running sessions, choose smart split directions, and name tabs after directories.
Bookmarks — pin frequently used folders to the sidebar for quick access.
Rename and trash — sync session renames back to the CLI and soft-delete sessions with restore support.
Understand usage and share results
Stats and pricing — inspect token spend and cost by project, model, or tool using live LiteLLM pricing; macOS menu bar stats show Today / 7d / 30d totals per agent.
Flexible export — export one session or a batch as offline-readable Markdown, HTML, or lossless JSON.
Read-only safety — source JSONL files are never modified or removed.
Supported session sources
Claude Code, Codex, Grok Build, Kimi Code, Pi, Antigravity CLI, and opencode. Grok Build, Kimi Code, and Pi provide history, terminal, export, analysis, and resume workflows; their GUI chat is intentionally not included.
Screenshots
Open the visual tour
<img src="docs/screenshots/cover.png" />
<p align="center"><em>Main view — sidebar, sessions, chat</em></p>
<img src="docs/screenshots/chat.png" />
<p align="center"><em>Faithful replay — thinking, tool calls, structured diffs</em></p>
<img src="docs/screenshots/split-screen.png" />
<p align="center"><em>Split panes — multiple sessions side by side, drag tabs between panes</em></p>
<img src="docs/screenshots/chat-preview.png" />
<p align="center"><em>In-app chat — Mermaid & tables, @-mention files, attach images</em></p>
<img src="docs/screenshots/session-resume.png" />
<p align="center"><em>Embedded terminal — one-click resume or new session</em></p>
<img src="docs/screenshots/search.png" />
<p align="center"><em>Global search (⌘⇧F) jumps to the message</em></p>
<img src="docs/screenshots/stats.png" />
<p align="center"><em>Token & cost analytics by project, model, tool</em></p>
<img src="src/assets/sys-stats.png" />
<p align="center"><em>Menu bar stats — per-agent cost & token overview</em></p>
<img src="docs/screenshots/model-price.png" />
<p align="center"><em>Live model pricing</em></p>
<img src="docs/screenshots/trash.png" />
<p align="center"><em>Shared trash — soft-delete with one-click restore</em></p>
<img src="src/assets/settings.png" />
<p align="center"><em>Settings — terminal picker & launch arguments</em></p>
<img src="docs/screenshots/export.png" />
<p align="center"><em>Exported HTML — fully offline, opens in any browser</em></p>
On Linux the .AppImage is portable — chmod +x and run. The .deb installs with:
sudo apt install ./cc-sessions-viewer__amd64.deb
Development
git clone https://github.com/jerrywu001/cc-sessions-viewer.git
cd cc-sessions-viewer
npm install
npm run tauri dev # dev mode
npm run tauri build # bundle
Prereqs: Node 20+, Rust stable. See CLAUDE.md for architecture notes.
This project is maintained in my spare time. Sponsorship helps cover ongoing development, bug fixes, and documentation.
🛠️ Continuous development and updates
🐛 Swift bug fixes and issue resolution
📚 Documentation improvements and expanded examples
For custom work or other special requests, contact me through one of the sponsorship options below. Requests start at US$50 and depend on current availability.