Greppy – A drop-in grep with code-nav subcommands for AI agents Greppy, a drop-in grep replacement with code-navigation subcommands for AI agents, improves agent accuracy on structural code questions from ~53% to ~87% while using fewer tokens. The Rust binary includes built-in symbol graph and semantic search, requiring no external indexing. Early benchmarks show 2.3× faster resolution and ~9× fewer input tokens compared to plain grep. Standard grep, plus a few commands your coding agent uses to navigate code — who-calls, impact, semantic-search, brief. On structural code-navigation questions the agent answers correctly ~87% of the time instead of ~53% with plain grep — using fewer tokens. One native Rust binary. greppy is a drop-in grep — every flag works exactly as before — that also answers the questions an agent normally burns rounds on: who calls this function, what breaks if I change it, where is the code that does X. One line in your agent's config below tells it the extra commands exist, and it stops looping through text matches. Standard grep — every command works, unchanged: greppy -rn "TODO" src/ greppy -i "connection refused" server.log A few extra commands, on the same binary: greppy who-calls parse config who calls this function greppy impact User --direction incoming what breaks if I change User greppy semantic-search "restrict a value to a range" find code by meaning greppy brief split blueprint path definition + callers + callees The same coding agent MiniMax-M3, driven by Pi Code answers one who-calls question on a real repo — left with plain grep, right with greppy. greppy resolves the callers in a single greppy who-calls call instead of a grep-and-read spiral: 2.3× faster, 14 → 5 tool calls, ~9× fewer input tokens. Counters are live from the recorded run. 1. Install the binary. cargo build --release --bin greppy --features embedded-model sudo install -m 0755 target/release/greppy /usr/local/bin/greppy Everything is automatic — the code graph and the semantic model are built into the binary and build themselves on first use. Nothing to index, nothing to download, no flags to configure. Prebuilt binaries for macOS / Linux / Windows are on the Releases /metric-space-ai/greppy/releases page. Want it as a transparent grep drop-in too? Install it a second time as grep . 2. Tell your agent the extra commands exist. Delegate it — in your agent's chat, say install https://github.com/metric-space-ai/greppy/ — or paste the snippet below into the file your agent reads for project instructions CLAUDE.md , AGENTS.md , .cursor/rules , .windsurfrules , or the system prompt . This project has greppy — standard grep plus a few code-navigation commands over a prebuilt symbol graph and an on-device semantic index. Every normal grep invocation and flag works exactly as usual. CODE-NAVIGATION COMMANDS. SYMBOL is a function / method / class / type name. They return resolved results as qualified name file:line , not text matches: greppy who-calls SYMBOL the callers of SYMBOL incoming calls greppy callees SYMBOL the functions SYMBOL calls outgoing calls greppy find-usages SYMBOL every reference to SYMBOL calls, uses, imports greppy brief SYMBOL SYMBOL's definition plus its callers and callees, in one call greppy impact SYMBOL the transitive set of code a change to SYMBOL reaches greppy search-symbols NAME definitions whose name matches NAME a name or fragment greppy path --from A --to B a call chain from symbol A to symbol B, if one exists SEMANTIC SEARCH — use when you do NOT know the symbol's name: greppy semantic-search "PLAIN-ENGLISH DESCRIPTION" Describe the behaviour or code you are looking for in plain English e.g. "restrict a value to a range", "retry a failed HTTP request" . Returns the closest-matching definitions by meaning signature + file:line . EXPAND — get the full source in one call instead of opening files by hand: greppy expand ID who-calls / callees / impact / semantic-search may end their output with a line Expand: greppy expand