A local desktop workspace for reading, searching, analyzing, and resuming AI coding sessions.
AI coding tools leave valuable context on your machine: decisions, patches, tool calls, costs, images, and unfinished threads. The problem is that every tool stores that history differently.
SessionView turns those local histories into one fast desktop workspace. Browse every supported tool in one explorer, read full sessions with rich rendering, search across your archive, inspect usage, export clean records, and resume work in the terminal when you need to continue.
Your data stays local. SessionView builds a local index for search and analytics; it does not upload your conversations.
- Browse one workspace across tools: Claude Code, Codex CLI, Antigravity, Kimi Code, Cursor CLI, OpenCode, CC-Mirror, Pi, and Grok Build.
- Read sessions like documents: Markdown, code blocks, Mermaid, KaTeX, inline images, reasoning blocks, and structured tool-call output.
- Search without digging through folders: global full-text search plus in-session find.
- Understand the work: token timelines, tool-call mix, context/cache pressure, cost trends, and model breakdowns.
- Resume fast: reopen a session in the matching terminal agent when the source tool supports it.
- Keep history organized: rename, favorite, export, and hide noisy folders.
- Stay keyboard-friendly: navigate tabs, panes, search, and common actions without leaving the keyboard.
Inspect a single session from the side panel: token timeline, tool-call mix, cache/context pressure, and quick workflow signals without leaving the conversation.
Track daily spend, model-level token totals, cache reads/writes, and provider trends from one dashboard.
SessionView currently reads local history from Claude Code, Codex CLI, Antigravity, Kimi Code, Cursor CLI, OpenCode, CC-Mirror, Pi, and Grok Build.
When a tool exposes enough information, SessionView can also resume the selected session in the matching terminal agent. CC-Mirror follows its configured variant. Parsing depth depends on what each tool records locally, but SessionView normalizes messages, tool calls, reasoning/thinking blocks, token usage, images, and child sessions wherever the source data exposes them.
Grab the latest build from Releases:
| Platform | File |
|---|---|
| macOS | .dmg |
| Windows | .exe (NSIS installer) |
| Linux | .deb / .AppImage |
macOS Gatekeeper: depending on the release certificate available for a build, macOS may block the first launch. If that happens, clear the quarantine flag:
xattr -cr "/Applications/SessionView.app"
Prefer a browser over a desktop app — or running on a remote/dev machine?
npx sessionview # serves the full app on http://127.0.0.1:9921
npx sessionview --open # …and opens your browserThe headless server is the same Rust core and the same UI as the desktop app,
and it shares the desktop app's index (~/.sessionview) — sessions indexed by either are
instantly visible in both. It binds localhost only by default; to expose it
beyond localhost, pass --host 0.0.0.0 --token <secret> (every API request
must then carry the token).
- Install and open SessionView
- Let it index your local tool histories
- Browse a session, search across your history, or resume right where you left off
Requires Rust and Node.js 22.12+.
git clone https://github.com/tyql688/sessionview.git
cd sessionview
npm install
npm run tauri build # Production build
npx tauri build --bundles dmg # DMG onlyHeadless server binary (no webview dependencies):
npm run build # frontend dist/ gets embedded into the binary
cd src-tauri
cargo build --release --no-default-features --features headless
./target/release/sessionview-headless --port 9921npm run tauri dev # Dev with hot reload
npm run check # Type-check + Biome + ESLint (frontend)
npm test # Frontend tests (Vitest)
cd src-tauri && cargo fmt --check
cd src-tauri && cargo test # Rust tests
cd src-tauri && cargo clippy --all-targets --all-features -- -D warnings
npm run knip # Release dead-code/dependency auditCode style is documented in style/ts.md and style/rust.md, enforced by Biome, ESLint, Clippy, Knip, and lefthook. Knip runs as a release gate rather than a per-push hook.
- Tauri 2 — desktop shell and native integrations
- React 19 — frontend UI with React Compiler
- Rust — provider parsing, indexing, export, and session lifecycle
- SQLite + FTS5 — local storage and full-text search
- Vitest, Biome, ESLint, and Clippy — testing and code quality
MIT © tyql688


