claudex Public
Go to file
T
Code
Use Git or checkout with SVN using the web URL.
No matching headings.
claudex
(noun) : the systematic cataloguing of fugal subjects across concurrent movements, as practiced by the lesser-known Viennese archivist Theodor Klaudeks, whose index of Bruckner's unfinished symphonies was itself famously never finished
Desktop GUI for browsing and running Claude Code sessions in parallel. Reads ~/.claude/projects/ directly, groups sessions into logical projects via git-root detection, and lets you open multiple interactive Claude terminals side-by-side without losing context when you switch between them.
What it does
- Thread browser — tree-structured sidebar of every Claude Code session on your machine, organized by project. Sessions from different working directories that share a git root merge into one project node.
- Embedded terminal mode — spawns
claude --resume <id>inside a real PTY rendered by xterm.js. Full CLI parity: slash commands, permission prompts, vim mode, ctrl-r history, ANSI rendering. Terminals persist across session switches (codex-style parallel threads). - Card viewer mode — parsed message timeline with syntax-highlighted code blocks, tool-use cards, thinking blocks. Toggle between terminal and cards per session.
- Archive recovery — reconstructs deleted session history from
~/.claude/history.jsonlso nothing is truly lost after a Claude Code major-version wipe. - Optional claude-mem enrichment — if claude-mem is installed, uses its AI-refined titles. Falls back to a local sanitizer that strips XML noise, code blocks, and IDE wrappers from the first message.
Stack
| Layer | Tech |
|---|---|
| Shell | Tauri 2 (macOS, WKWebView) |
| Backend | Rust — FS walking, JSONL parsing, PTY management via portable-pty, summary caching with bincode, file watching via notify |
| Frontend | React 19, TypeScript, Tailwind v4, Zustand, xterm.js 6, react-virtuoso |
| IPC | Tauri commands + per-PTY event channels. Binary data (terminal stdout) is base64-encoded; chunks are write-combined on the Rust side at ~16 ms intervals to avoid IPC storms. |
Build
Requires Rust 1.77+, Node 20+, pnpm.
pnpm install
pnpm tauri dev # dev mode with hot reload
pnpm tauri build # production .app bundle
Status
Early. Works on macOS. Expect rough edges.
License
GPL v3