jevgrep.

Semantic code search · powered by Jev

Let your coding agents find code by what it does.

Describe a behavior. Get the exact files, line ranges and source that justify the answer — with the coverage to know what was actually searched.

Get startedRead the CLI guide

~/acme-api

A terminal session. Running jg --all "where are expired CLI tokens rejected?" apps/webjudges 120 snippets and returns one match: apps/web/app/api/[...path]/route.ts lines 11 to 15, the function authenticate, which loads the token row filtered on revoked_at and expires_at. Runningjg exact -n --glob '*.ts' 'expires_at' apps/web lists every literal occurrence through ripgrep.

Replayed from this repository. 120 snippets judged, one match returned — and jg exact hands off to ripgrep unchanged.

How all-mode judges a match

With --all, every snippet gets two independent judgments — whether it acts on the entity you named, and whether it performs the operation you described — multiplied into one score. Related code that shares the vocabulary scores close, and still falls short.

Real scores from this repository, stable across three runs. The score ranks results; it is not a calibrated probability, and the threshold is tuned on a small labelled corpus rather than a representative one.

How the searches compare

Speed, model cost, and first-result accuracy on 40 development lookups.

Function lookup speed, cost, and first-result accuracy: Jev-only development prototype and Opus
Search methodSpeedCostAccuracy
JevgrepJev-only · development benchmark0.66s~29× faster in development~$0.000427~251× lower model cost92.5%First result · 37 of 40
Claude Opus 5Agent with grep + read19.0sRecorded baseline$0.107213Recorded model cost92.5%Selected answer · 37 of 40

Your working tree, not an index

Reads the files on disk right now, including uncommitted edits, and respects your ignore rules. Nothing to build, sync or invalidate.

Judged one behavior at a time

Default search compares complete functions from likely code scopes. All-mode can evaluate individual blocks for queries about a guard or branch inside a larger function.

Answers an agent can act on

Up to three selected choices with a bounded output budget. --json and the MCP server share one versioned schema, and coverage says what was judged and what was not.

Start searching

npm install -g @remotehost/jg@preview
jg login
jg "reject expired sessions" .

Register it with a coding agent over MCP with jg mcp ., or keep it in the terminal. Exact searches still belong to ripgrep — jg exact passes your arguments straight through.

Create an accountSee every flag

Preview release. Search quality is evaluated on a small labelled corpus; agent speedups are not yet measured.