Terminal TUI to browse and resume Claude Code, OpenCode, and Copilot CLI sessions in named tmux windows — with AI-generated summaries, an insights timeline, a per-turn detail modal, a learning library, project dashboard, weekly digest, tags, session linking, live git status, and Obsidian export.
One-liner (Linux / macOS — auto-detects platform):
curl -fsSL https://raw.githubusercontent.com/wei6bin/cc-speedy/master/install.sh | bashThis downloads the right binary, puts it in /usr/local/bin, and registers the SessionEnd hook — all in one step.
To install to a custom directory:
BIN_DIR=~/.local/bin curl -fsSL https://raw.githubusercontent.com/wei6bin/cc-speedy/master/install.sh | bashcargo install --path .
cc-speedy installcc-speedy # open the session browser TUI
cc-speedy install # register the SessionEnd hook in ~/.claude/settings.json
cc-speedy update # download & replace the binary with the latest GitHub release
cc-speedy --version| Key | Action |
|---|---|
j / k or arrows |
Move selection (or scroll preview when focused) |
Tab |
Cycle focus: list ↔ archived ↔ preview |
Enter |
Resume session in tmux (or open turn detail when the insights cursor is active) |
Ctrl+Y |
Resume in yolo mode (--dangerously-skip-permissions for CC, --allow-all for Copilot) |
q / Ctrl+C |
Quit |
F1 |
Help popup |
| Key | Action |
|---|---|
/ |
Filter (supports #tag tokens — e.g. /#blocked auth) |
? |
Cross-session grep (titles, paths, branches, summary, learnings) |
1 / 2 / 3 / 0 |
Source filter: CC / OC / Copilot / all |
Esc |
Clear filter / project filter / mode |
| Key | Action |
|---|---|
L |
Learning library — every captured decision / lesson / tool, filterable by category (0-3) |
P |
Project dashboard — per-project stats; s cycles sort, Enter drills the main list |
D |
Weekly digest — 7-day project + learning summary; e exports to the Obsidian vault |
i |
Toggle the Insights panel (token totals, tool histogram, glyph timeline) |
[ / ] |
Move the timeline cursor; Enter opens the per-turn detail modal |
{ / } |
Jump to first / last turn |
t |
Edit tags on the selected session |
l / u |
Link to a parent session / unlink |
g |
Refresh live git status |
x |
Actions menu (pin, new, new-with-prior-summary, ±yolo) |
a |
Archive / unarchive |
r |
Rename |
c |
Copy summary |
o |
Push session to Obsidian vault |
Ctrl+R |
Regenerate summary (and re-extract learnings) |
s |
Settings (Obsidian path / vault / daily-push) |
Each row carries a glyph showing the project's current git state:
| Glyph | Meaning |
|---|---|
● red |
Dirty (uncommitted changes) |
○ green |
Clean |
· dim |
Not a git repo |
◦ yellow |
Check timed out / errored |
g force-refreshes all entries; selection-change auto-refreshes any entry older than 30s.
Session browser — reads CC sessions from ~/.claude/projects/**/*.jsonl (+ sessions-index.json for accurate project paths), OpenCode from ~/.local/share/opencode/, and Copilot from ~/.copilot/session-state/. Sorted by recency; pinned sessions float to the top.
Auto-summary — sessions with ≤20 messages auto-generate an AI summary on hover (max 5 concurrent). Ctrl+R force-regenerates any session and re-extracts learning points. Uses claude --print (your existing Claude Code subscription, no separate API key).
Insights panel — toggled with i, shows the model, token totals (input / output / cache hit %), tool & skill histogram, sub-agent dispatches, and a per-turn glyph timeline colored by category (Task / Skill / Tool / Thinking / Text). Errors are flagged red. Cached in SQLite keyed by source-file mtime.
Per-turn detail modal — press Enter while the timeline cursor is active to open a full-screen view of one assistant turn: the triggering user prompt, every content block (thinking / tool_use / text), and tool_results paired by tool_use_id. Works for both CC and Copilot.
Learning library / Project dashboard / Weekly digest — three full-screen surfaces over your entire history. The library indexes decisions, lessons, and tool/command discoveries cc-speedy captures during summarization. The dashboard rolls sessions up by project. The digest is a pure-aggregation 7-day snapshot (no LLM, instant open) you can export as a Markdown note.
Tags & linking — t adds free-form tags (normalized to [a-z0-9_-]); the filter accepts #tag tokens. l links sessions into parent/child chains so multi-period work is one click away.
Obsidian export — o builds a YAML-frontmatter note (status, tags, links) and pushes it to your vault via the official obsidian CLI. Configure the vault path under s (Settings).
Tmux integration — Enter opens a named tmux session running claude --resume <id> in the project directory. If you're already inside tmux it switches the client; otherwise it attaches. Session names use the cc- / oc- / co- prefix per source. The "new session with prior summary" action menu item pastes the summary into the new session via tmux bracketed-paste.
| Path | Description |
|---|---|
~/.claude/projects/ |
Claude Code session data (JSONL) |
~/.claude/history.jsonl |
Command history (used for /rename titles) |
~/.claude/settings.json |
Modified by cc-speedy install (SessionEnd hook) |
~/.local/share/opencode/ |
OpenCode sessions |
~/.copilot/session-state/ |
Copilot CLI sessions |
~/.local/share/cc-speedy/data.db |
SQLite store: summaries, pins, learnings, tags, links, insights, settings |