tenseleyflow/claudex / 098daa0

Browse files

add readme

Authored by espadonne
SHA
098daa0cb7f0559a324ff69c0543c2d26c4a8181
Parents
3efbb56
Tree
ad6f229

1 changed file

StatusFile+-
A README.md 42 0
README.mdadded
@@ -0,0 +1,42 @@
1
+# claudex
2
+
3
+*(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*
4
+
5
+---
6
+
7
+Desktop GUI for browsing and running [Claude Code](https://docs.anthropic.com/en/docs/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.
8
+
9
+## What it does
10
+
11
+- **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.
12
+- **Embedded terminal mode** &mdash; 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).
13
+- **Card viewer mode** &mdash; parsed message timeline with syntax-highlighted code blocks, tool-use cards, thinking blocks. Toggle between terminal and cards per session.
14
+- **Archive recovery** &mdash; reconstructs deleted session history from `~/.claude/history.jsonl` so nothing is truly lost after a Claude Code major-version wipe.
15
+- **Optional claude-mem enrichment** &mdash; if [claude-mem](https://github.com/anthropics/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.
16
+
17
+## Stack
18
+
19
+| Layer | Tech |
20
+|-------|------|
21
+| Shell | [Tauri 2](https://tauri.app/) (macOS, WKWebView) |
22
+| Backend | Rust &mdash; FS walking, JSONL parsing, PTY management via `portable-pty`, summary caching with bincode, file watching via `notify` |
23
+| Frontend | React 19, TypeScript, Tailwind v4, Zustand, xterm.js 6, react-virtuoso |
24
+| 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. |
25
+
26
+## Build
27
+
28
+Requires Rust 1.77+, Node 20+, pnpm.
29
+
30
+```bash
31
+pnpm install
32
+pnpm tauri dev        # dev mode with hot reload
33
+pnpm tauri build      # production .app bundle
34
+```
35
+
36
+## Status
37
+
38
+Early. Works on macOS. Expect rough edges.
39
+
40
+## License
41
+
42
+Not yet decided.