A fast, interactive terminal session browser for Claude Code. Browse, search, fork, and checkpoint any of your past sessions across all projects — with live filtering, BM25 full-text deep search, and message previews.
Claude Code's built-in /resume is limited to the current project, /checkpoint can't go earlier than summarized context, and /fork UX is clunky. claude-resume gives you all sessions across all projects with powerful search, session forking, and full checkpoint control over your conversation history.
pnpm install
pnpm build
pnpm link --globalclaude-resume # resumes with `claude`
claude-remote-resume # resumes with `claude-remote`| Key | Action |
|---|---|
| Type anything | Live filter by summary, project, branch |
Up / Down |
Navigate sessions |
Enter |
Resume selected session, or deep search when in search bar |
Right |
Open action menu (Fork / Checkpoint) on selected session |
f |
Fork (duplicate) the selected session |
c |
Checkpoint — roll back to any conversation turn |
Backspace |
Delete search characters |
Esc |
Clear search / cancel action / quit |
- Live filtering: Just start typing — sessions are filtered instantly by summary, first prompt, project name, path, and git branch. Multi-word queries highlight each term independently.
- Deep search (
Enterin search bar): Performs a full BM25 search through the actual conversation content of all your.jsonlfiles. Results stream in ranked by relevance with recency boost, and show relevance bars and match snippets in the preview pane.
- Fork (
forRight→ Fork): Duplicates the session.jsonlfile with a new UUID. The forked session appears immediately in the list. Useful for branching a conversation without losing the original. - Checkpoint (
corRight→ Checkpoint): Shows every conversation turn in a scrollable list. Select a turn and confirm to truncate the session to that point. The original file is backed up to.jsonl.bkpbefore truncation. Unlike Claude's built-in/checkpoint, this works on any turn — even ones before summarized context.
Both actions are available in browse mode and deep search mode, and require confirmation before executing.
- Reads
sessions-index.jsonfiles from~/.claude/projects/for instant metadata, and scans.jsonlfiles directly to catch sessions not yet indexed - Uses actual file modification times (
fs.stat) instead of stale index timestamps - Merges and deduplicates sessions from all projects, sorted by most recently modified
- Preview pane reads the last 8KB of conversation files for quick message previews
- Deep search streams through
.jsonlfiles newest-first, scoring with BM25 (k1=1.2, b=0.4) plus a recency boost, with prefix matching for partial terms - Uses alternate screen buffer (like vim/fzf) for clean fullscreen rendering
- Launches
claude --resume <sessionId>via your shell ($SHELL -ic) so aliases are inherited
pnpm dev # Run directly with tsx
pnpm test # Run tests
pnpm test:watch # Run tests in watch mode
pnpm build # Compile TypeScript to dist/MIT