Archive and search your Claude Code conversation history.
Inspired by msgvault, ccvault provides offline search, analytics, and AI integration for Claude Code sessions stored in ~/.claude.
- Full-text search across all conversations with Gmail-like query syntax
- Interactive TUI for browsing and analyzing sessions
- DuckDB analytics for fast aggregate queries over Parquet exports
- MCP server for AI assistant integration
brew install 2389-research/tap/ccvaultRequires Go 1.25 or later:
go install github.com/2389-research/ccvault/cmd/ccvault@latestMake sure $GOPATH/bin (or $HOME/go/bin) is in your PATH.
git clone https://github.com/2389-research/ccvault.git
cd ccvault
go build -o ccvault ./cmd/ccvault
sudo mv ccvault /usr/local/bin/ccvault version# Sync conversations from ~/.claude
ccvault sync
# Launch interactive TUI
ccvault tui
# Search conversations
ccvault search "debugging async"
ccvault search "project:myapp model:opus"
# View statistics
ccvault stats| Command | Description |
|---|---|
quickstart |
Interactive setup guide for new users |
orient |
Database state summary for AI agents (use --json) |
sync |
Sync conversations from Claude Code |
tui |
Launch interactive terminal UI |
search [query] |
Full-text search across conversations |
stats |
Show archive statistics |
list-projects |
List all indexed projects |
list-sessions |
List sessions (optionally filtered by project) |
show [session-id] |
Display a specific session |
export [session-id] |
Export a session to markdown |
build-cache |
Build Parquet analytics cache |
mcp |
Start MCP server for AI integration |
version |
Print the version number |
ccvault supports Gmail-like query syntax:
project:name Filter by project path/name
model:opus Filter by model (partial match)
tool:Bash Sessions using specific tool
file:path Filter by file path
before:date Sessions before date (YYYY-MM-DD)
after:date Sessions after date
has:error Sessions with errors
has:subagent Sessions with subagent usage
"exact phrase" Exact phrase match
Examples:
ccvault search "debugging the API endpoint"
ccvault search "project:myapp after:2024-01-01"
ccvault search "tool:Edit model:opus"
ccvault search '"error handling" project:backend'ccvault includes an MCP (Model Context Protocol) server for AI assistant integration.
ccvault mcpAvailable tools:
search_conversations- Full-text search across conversationsget_session_summary- Quick overview of a session (metadata, stats, tools used)get_turns- Paginated turns from a sessionget_session- Full session in markdown formatlist_sessions- List recent sessionslist_projects- List all indexed projectsget_stats- Archive statisticsget_analytics- Detailed usage analytics
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"ccvault": {
"command": "ccvault",
"args": ["mcp"]
}
}
}ccvault ships with a Claude Code skill that teaches AI agents how to effectively mine conversation history. It includes search strategy patterns, workflow prompts for session orientation and on-demand recall, and a full tool/query reference card.
See skills/ccvault/ for the full skill.
ccvault uses sensible defaults but can be configured via environment variables:
| Variable | Default | Description |
|---|---|---|
CCVAULT_CLAUDE_HOME |
~/.claude |
Claude Code data directory |
CCVAULT_DATA_DIR |
~/.ccvault |
ccvault data directory |
- SQLite database:
~/.ccvault/ccvault.db- Session data with FTS5 full-text search - Analytics cache:
~/.ccvault/analytics/sessions.parquet- Parquet export for DuckDB queries
ccvault/
├── cmd/ccvault/ # CLI entry point
├── pkg/
│ ├── models/ # Data structures
│ └── parser/ # JSONL session parser
└── internal/
├── config/ # Configuration
├── db/ # SQLite layer with FTS5
├── sync/ # Incremental sync logic
├── search/ # Query parsing and execution
├── export/ # Markdown export
├── tui/ # Bubble Tea terminal UI
├── analytics/ # DuckDB/Parquet export
└── mcp/ # MCP server
MIT