Skip to content
ccvault

ccvault

Archive and search your Claude Code conversations. Full-text search, analytics, and MCP integration for everything in ~/.claude.

GitHub ← All Products

ccvault syncs your Claude Code sessions from ~/.claude into a local SQLite database with FTS5 full-text search. You get Gmail-style query syntax, a terminal UI for browsing sessions, Parquet exports for analytics, and an MCP server so other AI tools can search your history too.

Install

brew install 2389-research/tap/ccvault

Or with Go 1.25+:

go install github.com/2389-research/ccvault/cmd/ccvault@latest

What it does

Search — Query your conversations with filters like project:myapp, model:opus, tool:Bash, after:2025-01-01, has:error, or plain text. Exact phrase matching works too.

Browse — A Bubble Tea TUI lets you scroll through sessions, view turn-by-turn details, and drill into specific conversations without leaving the terminal.

Analytics — Exports session data to Parquet files. Run DuckDB queries against your usage patterns: which models you use most, which tools get called, how sessions break down by project.

MCP server — Eight tools (search, session summaries, paginated turns, stats, analytics) exposed over Model Context Protocol. Point Claude Desktop or any MCP client at ccvault mcp and your conversation archive becomes searchable by other agents.

Incremental sync — Tracks file modification times so re-syncing is fast. Only new or changed sessions get processed.

How it works

Claude Code stores sessions as JSONL files under ~/.claude/projects/. ccvault parses these files, extracts turns (with role, model, tool usage, timestamps), and writes them to SQLite with FTS5 triggers for instant full-text indexing. A separate build-cache command exports the same data to Parquet for DuckDB analytics.

Requirements

Go 1.25+ for building from source. Homebrew handles dependencies automatically.

22 products · 8 skills · hugo 0.148.2 · 0a555bd · built Feb 26 17:01
2389 Radio
2389 RADIO Select a station