jevgrep: Find Code by Asking What It Does
grep has one assumption baked in: you already know a string the code contains. Most of the time, on an unfamiliar codebase, you don’t. You know what the code does — “where do we validate the webhook signature?” — but not what it’s called. jevgrep (2.3k stars, MIT) is built for exactly that gap.
What it does
jevgrep — jg on the command line — is a CLI for coding agents that discovers relevant files and source context by semantic intent. You ask what the code does; it returns the files and context that match the meaning, not a literal pattern. For an agent working through an unfamiliar repo, that is often the difference between finding the right file on the first try and grepping blindly through twenty candidates.
It is not a grep replacement. ripgrep is still faster and exact when you know the token. jevgrep is the tool for the other half of code search — the exploratory half, where you’re reasoning about behavior instead of strings.
The interesting part: it ships a skill, not just a binary
Here’s the pattern worth highlighting. Installing the CLI alone does not teach your agent to use it:
npm install --global @dzhng/jevgrep@latest # the CLI
jg skill # the agent skill — required
That second command is the point. jg skill detects your coding agents (Claude Code, Codex, OpenCode, and others) and installs a skill that explains how to invoke jg and what the returned context means — then gets out of the way, leaving research and implementation decisions to the calling agent. You can also pull it through the skills registry:
npx skills add dzhng/jevgrep --skill jevgrep
Why this matters beyond one tool
We’re watching a convention form in real time: ship the CLI and the skill that teaches the agent to use it, in the same package. jevgrep does it with jg skill. huashu-art-motion does it with npx skills add. It’s the same instinct behind packaging our own tools as Claude Code plugins — a tool an agent can’t figure out how to call is a tool that doesn’t get used.
Semantic code search is a natural agent primitive, and it rhymes with work we do constantly: RAG over codebases, where the retrieval quality determines whether the model grounds on the right file or hallucinates one. jevgrep pushes that capability down to the command line, where any agent can reach it.
The caveat
Semantic search needs a provider key (embeddings/inference) — the skill installer does not configure credentials, so budget for that setup step. Provider selection needs version 0.3.0 or newer. And as with any embedding-based retrieval, results are only as good as the index and the model behind it; treat it as a strong first-pass locator, then confirm with exact tools.
Repo: github.com/dzhng/jevgrep