ev·grep

SEMANTIC SEARCH / BUILT IN RUST

You know what
you’re looking for.
Find where it lives.

Search files with a question. ev-grep uses Jev to look for meaning in your code and returns a decision for each file.

~/your-projectEXAMPLE
$ ev-grep 'Catches a database failure and returns an empty result' src/

src/users.py       match
src/actions.py     uncertain
A starting point for investigation. Uncertainty stays visible.
01 / ASK

A question, not a pattern.

Describe the behavior you want to find. Search complete files, with familiar paths and glob filters.

02 / DECIDE

Three honest outcomes.

Match, no match, or uncertain. Low-confidence decisions remain uncertain; request failures remain errors.

03 / COMPOSE

Made for your tools.

Use readable terminal output or versioned JSON Lines. Build review pipelines around the same small executable.

GET STARTED

One binary.
Your own API key.

No Rust toolchain needed. Install a prebuilt release for macOS or Linux, then configure OpenRouter or TypeSafe.

Browse releases and checksums ↗

Install with curl

curl -fsSL https://ev-grep.com/install.sh | sh

Read the installer · Version-pinned installer

Or use mise

mise use -g github:macromackie/ev-grep@0.1.0

Search your project

export OPENROUTER_API_KEY='your-key'
ev-grep 'Initiates notification delivery' src/
ev-grep 'Logs authentication secrets' src/ --json

Queries and selected file contents are sent directly from your CLI to your chosen provider. Requests use your account and may incur provider charges.

Small tool. Clear decisions.

Early release: model assessments guide investigation; they don’t prove code correct.