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 supported recorded context, 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, inspect cached MCP context estimates, and preview file edits. Review hook commands before testing: a dry-run executes the script, not a sandbox.
>
> → Read the tool management guide
Read and find context
Recorded context — view supported thinking blocks, paired tools, structured diffs and recorded images; coverage depends on the source format.
Global search — with ⌘⇧F, search titles and saved user prompts across the selected agent's projects, or switch to session-ID mode. Assistant answers and tool output are not matched.
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. Restart can restore tab titles/directories with a new shell, not the previous process or running command.
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 recorded token usage and estimated cost by project, model, or tool using cached models.dev prices; macOS menu bar stats show Today / 7d / 30d totals where usage is available. Estimates are not provider invoices.
Flexible export — save Markdown, HTML, or parsed-message JSON. Remote or unreadable local images may remain linked; keep native files for a complete backup.
Read-only browsing — reading, searching and exporting do not rewrite source transcripts. Rename, trash/restore, continuation and editing are separate write operations.
History processing is local; the whole app is not network-free. Online chat/resume uses your configured CLI/provider, and updates, prices and quota features can make requests. See privacy and data handling.
Supported session sources
Claude Code, Codex, Grok Build, Kimi Code, Pi, Antigravity CLI, and opencode. All seven provide history, search, export and terminal resume. In-app chat is available only for Claude Code and Codex. Usage statistics depend on recorded fields; the supported Antigravity transcript has none.
> [!IMPORTANT]
> macOS: this build is not notarized. It is ad-hoc signed, so Gatekeeper blocks the
> first launch with "Apple could not verify 'Sessions Viewer' is free of malware."
> Apple has not verified this build; the warning does not prove the download is safe.
> Only proceed if you deliberately obtained and trust the installer from this project's Releases.
>
> macOS 15 Sequoia and later — Control-click → Open no longer works, Apple removed
> that bypass:
> 1. Double-click the app once and dismiss the warning.
> 2. Open System Settings → Privacy & Security and scroll to the bottom.
> 3. Next to "Sessions Viewer" was blocked, click Open Anyway and authenticate.
> 4. Launch the app again and click Open.
>
> macOS 14 Sonoma and earlier — Control-click (right-click) the app in Finder →
> Open → Open in the dialog. Once is enough.
>
> From Terminal, only for a trusted download: this removes the quarantine attribute
> and bypasses that Gatekeeper check. Prefer the System Settings flow above.
> bash > xattr -dr com.apple.quarantine "/Applications/Sessions Viewer.app" >
> If it reports Operation not permitted, check ownership and installation location instead of blindly elevating permissions.
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: latest Node 22, 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.