rogrep
Search and analyze every coding-agent session.
rogrep supports Claude Code, Codex, Cursor, Grok, Hermes and OpenCode — on macOS and Linux.
git clone https://github.com/agentpmhq/rogrep && cd rogrep && cargo install --path crates/rogrep01Install rogrep
Paste that in a terminal. Nothing runs as root, no daemon is installed, and no account is created. Then index what is already on disk:
$ rogrep sync# build the index$ rogrep doctor# check provider coverage$ rogrep tui# browse interactivelyrogrep is open source under Apache-2.0. Read about other installation options.
02What does rogrep do?
Every coding agent writes its session history to disk in its own format. rogrep reads all of them, normalizes them into conversations, exchanges and turns, and makes the whole corpus searchable — so you can ask the history before you rebuild the work.
A match returns the whole exchange — the request and everything the agent did in response — not the single line that happened to contain your words. Known key:value facets narrow the evidence; unknown colon tokens stay searchable text.
What did the agent do about this, last time?
$ rogrep x "fix the parser"One prompt and everything that followed it, whichever model answered — not just the message that matched.
Which commands failed, and in what context?
$ rogrep tool_status:failed tool_cmd:cargoKnown key:value facets filter evidence; unknown colon tokens stay searchable text.
How did this pull request actually happen?
$ rogrep trajectory --pr 48Ranked by captured Git and GitHub operations, not by keyword luck.
03Where rogrep keeps things
rogrep won’t write outside its own data directory. It reads the session stores each provider already maintains, and stores only derived search and statistics data in ~/.local/share/rogrep — overridable with ROGREP_DATA_DIR. Source rollouts stay the durable truth, so anything derived can be deleted and rebuilt.
04Trajectories and statistics
Because rogrep captures Git and GitHub operations as part of the record, it can rank which conversation actually produced a branch, commit or pull request — prioritizing the conversation that created it, ranking matching Git operations above text-only mentions, then printing the exact rogrep show command to inspect the turn.
Statistics come from SQLite over the same normalized record, so they are repeatable and computed without asking a model to interpret anything.
$ rogrep stats top --by tokens --since 7d// illustrative shape — replace with a real paste05Speed, measured
Every command auto-syncs before it answers. That is only viable because a no-op sweep costs 16ms — which is the reason these numbers matter more than the cold-index figure.
cass 0.6.22 built from source, default lexical-only config. Both tools indexed the same real ~730MB / ~275-session corpus into isolated throwaway data dirs. Single-machine July 2026 snapshot; measures indexing cost, refresh, footprint and latency — not relevance quality. Discovery semantics differ, and ~10–15ms of each search is process startup. Full methodology ↗
06Resources
Query syntax, provider coverage, configuration and the full command reference.
docs ↗Add a provider, sharpen retrieval, improve the TUI, or test the incremental parsing invariants.
CONTRIBUTING.md ↗Ask a question, report a problem or see what is being worked on.
issues ↗How normalization, indexing and the workspace layout actually work.
repository ↗