Search, browse, and resume your Claude Code sessions. Fast.
You've got months of Claude Code sessions sitting in ~/.claude/projects/. Finding that conversation where you fixed the authentication bug? Good luck grepping through nested JSON files.
ccrider solves this with a TUI browser, CLI search, and an MCP server so Claude can search your past sessions too.
# Import your sessions once
ccrider sync
# Launch the TUI - browse, search, resume
ccrider tui
# Or search from command line
ccrider search "authentication bug"Stay in your terminal. Find any conversation. Resume where you left off.
Installation:
# Homebrew (recommended)
brew install neilberkman/tap/ccrider
# Or from source
git clone https://github.com/neilberkman/ccrider.git
cd ccrider
go build -o ccrider cmd/ccrider/main.go
sudo mv ccrider /usr/local/bin/
# Install MCP server for all your projects (optional)
claude mcp add --scope user ccrider $(which ccrider) serve-mcp"Vibe code like a king The King!"
ccrider.mp4
Browse your sessions with a polished terminal UI:
- Arrow keys to navigate
- Enter to view full conversation
- o to open session in new terminal tab (auto-detects Ghostty, iTerm, Terminal.app)
- / to search across all messages
- p to toggle project filter (show only current directory)
- ? for help
Sessions matching your current directory are highlighted in light green - instantly see which sessions are relevant to your current work.
ccrider search "postgres migration"
ccrider search "error handling" --project ~/code/myapp
ccrider search "authentication" --after 2024-01-01Powered by SQLite FTS5 - search message content, filter by project or date, get results instantly.
Press r in the TUI or use the CLI:
ccrider resume <session-id>Launches claude --resume in the right directory with the right session. Just works.
ccrider sync # Import all new sessions
ccrider sync --full # Re-import everythingDetects ongoing sessions and imports new messages without re-processing everything.
ccrider includes a built-in MCP (Model Context Protocol) server that gives Claude access to your session history.
Ask Claude to search your past conversations while working on new problems:
- "Find sessions where I worked on authentication"
- "Show me my most recent Elixir sessions"
- "What was I working on last week in the billing project?"
- "Search my sessions for postgres migration issues"
Claude Code:
# Install for all your projects (recommended)
claude mcp add --scope user ccrider $(which ccrider) serve-mcp
# Or for current project only
claude mcp add ccrider $(which ccrider) serve-mcpClaude Desktop:
Add to your config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"ccrider": {
"command": "ccrider",
"args": ["serve-mcp"]
}
}
}- search_sessions - Full-text search across all session content with date/project filters
- list_recent_sessions - Get recent sessions, optionally filtered by project
- get_session_detail - Retrieve session info with first/last messages and optional search
- get_session_messages - Get messages from a session (supports tail mode, context around search matches)
The MCP server provides read-only access to your session database. Your conversations stay local.
ccrider looks for config in ~/.config/ccrider/:
# config.toml - pass additional flags to claude --resume
claude_flags = ["--dangerously-skip-permissions"]# terminal_command.txt - custom command for 'o' key
# Available placeholders: {cwd}, {command}
wezterm cli spawn --cwd {cwd} -- {command}# resume_prompt.txt - customize the prompt sent when resuming sessionsSee CONFIGURATION.md for full details.
Built with strict core/interface separation following Saša Jurić's principles:
- Core (
pkg/,internal/core/): Pure business logic - parsing, database, search - Interface (
internal/interface/,cmd/): Thin wrappers - CLI, TUI, MCP server
Uses proven technologies:
- Go for performance and single-binary distribution
- SQLite with FTS5 for fast full-text search
- Bubbletea for polished terminal UI
- MCP for Claude integration
Other Claude Code session tools are broken:
- Incomplete schema support (can't parse all message types)
- Broken builds and abandoned dependencies
- No real search (just grep)
- Can't actually resume sessions
ccrider fixes this with:
- ✅ 100% schema coverage - parses all message types correctly
- ✅ SQLite FTS5 search - fast, powerful full-text search
- ✅ Single binary - no npm, no pip, no dependencies
- ✅ Native resume - one keystroke to resume sessions
- ✅ Incremental sync - detects new messages in ongoing sessions
See CONTRIBUTING.md for development setup and guidelines.
cmd/ccrider/ # CLI entry point + MCP server
internal/
core/ # Business logic (no UI concerns)
db/ # Database operations
importer/ # Session import/sync
search/ # Full-text search
session/ # Session launch logic
interface/ # Thin UI wrappers
cli/ # Command handlers
tui/ # Terminal UI (bubbletea)
pkg/ccsessions/ # Session file parser (public API)
go build -o ccrider cmd/ccrider/main.go
./ccrider sync
./ccrider tuiMIT