trunk
Branches trunk
1 Branches 0 Tags
Go to file T
Code

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.jsonl so 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