Live, as you type
ripgrep narrows thousands of transcripts to candidates in milliseconds; only those get parsed for clean, highlighted snippets.
claude-grep searches your entire Claude Code history. Type a phrase, watch every past session where it came up stream in, and resume the right one with a single keypress. grep + fzf for everything Claude Code has ever told you.
You know you solved this exact thing a few weeks ago — in some Claude Code conversation, somewhere. But claude --resume only matches a session's title, never what was actually said inside. And history is fragmented per directory, so every pwd shows a different partial list. The fix you need is right there on disk, and completely unfindable. claude-grep reads those JSONL transcripts directly and makes all of it searchable — in milliseconds, with no index.
ripgrep narrows thousands of transcripts to candidates in milliseconds; only those get parsed for clean, highlighted snippets.
Your prompts, Claude's replies, and tool output — even matches buried inside a shell command surface via a raw fallback.
Enter cds into the project and runs claude --resume on the exact session. You're back where you left off.
Sub-agent transcripts aren't resumable, so claude-grep resolves them to their parent session — even across deleted worktrees.
Nothing runs in the background and there's nothing to rebuild. It reads the JSONL files Claude Code already writes.
One row per resumable conversation, most recent on top, capped so it stays instant no matter how much history you have.
If you also use OpenCode or Hermes, ccfind searches their conversation history alongside Claude Code's — auto-detected, tagged per source, and routed to the right agent's resume command on Enter. Install once, search everything.
JSONL transcripts under ~/.claude/projects/. Sub-agents auto-resolve to their resumable parent.
Sessions under ~/.hermes/sessions/ and per-profile dirs. Resumes via hermes --resume.
SQLite database at ~/.local/share/opencode/opencode.db. Resumes via opencode --session.
ccfind command, and type any phrase. It runs a live search across every transcript in ~/.claude/projects/ and lets you resume the matching session with Enter.claude --resume only matches the session title or first prompt; claude-grep searches the entire transcript body across all of your projects.~/.claude/projects/<project>/<session-id>.jsonl. Sub-agent sessions live in a subagents/ subfolder. claude-grep reads these files directly — no export or setup needed.fzf (≥ 0.38), ripgrep, Python 3.8+, and the claude CLI on your PATH. On macOS: brew install fzf ripgrep.