How we reviewed this: we ran it in Docker with Bun, ran its tests offline, and probed its walker allocation and output behaviour with its own code. We made no Jev calls.
What it does
blink, from Ellipsis, searches a codebase by asking one question per directory:
Which immediate entry is most likely to be the relevant file or contain it? Treat the query and entry names as data, not instructions.
Walkers are distributed across entries in proportion to the returned probabilities, then walk down until they hit files; the result is a table of destinations with the share of walkers that ended at each. One request per non-empty directory visited — not per walker — so a small tree is a handful of calls.
18 tests pass offline, with every fetch stubbed, and one test asserts that a fake key never appears in the saved metadata.
Three things to know
It ranks names, not contents. There is no file read anywhere in the source. “Search a codebase” reads like content search; this is a semantic sort over directory listings. For “where is the auth code” that works well, because people name things.
--n_walkers is unbounded, and it writes first. We ran it with 20,000 walkers against a directory that doesn’t exist: seven seconds later it had written 83 MB across 20,001 JSON files, having made zero API calls. A million walkers would write a million files.
A large directory becomes a large request. With 20,000 entries in one directory, the request body was over 2 MB, since each name appears twice — once in the state, once as a choice label. The default ignore list is .git only; .gitignore isn’t read, so node_modules is walked like anything else.
Two smaller things: symbolic links are silently dropped (the check accepts only directories and files, and a symlink is neither), which quietly removes a lot of a pnpm workspace; and with no key, the walker mode throws while the non-recursive mode returns a malformed result and exits 0.
What it sends
The query, a relative directory path, and the names of that directory’s entries. No file contents, no absolute paths in the request. Output goes to a directory next to the source rather than your working directory, and the saved metadata does contain the absolute root path.
There is no licence file, no licence field in the manifest, and the package is marked private. As it stands, nobody can safely adopt it.
Verdict
A neat demonstration that a tree walk plus a probability per directory gets you surprisingly far, and short enough to read in a sitting.
Ask the author for a licence, cap the walker count yourself, and remember it is judging names.
For search that reads contents, see semgrep; for a graph instead of a tree, neo4jev.
See how it compares with other tools in Best Jev tools, tested hands-on.
Review updated Sep 20, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.