A question can be a search primitive.
Traditional code search starts with a string, symbol, or regular expression. That works when you know the repository's vocabulary. It works poorly when the question is about behavior and the names are still unknown.
Jevgrep takes a natural-language repository question, walks the directory hierarchy, judges previews, selects files, and returns verbatim excerpts with line references. Its own architecture draws a firm line. The model classifies relevance. The calling agent owns explanation, implementation, and verification.[1]
The output is a reading lead with source attached, not an answer with certainty attached.
Preview admission buys cost with recall.
Version 0.5.0 can reject a file after judging its content preview. That cuts requests and input charges. It can also miss relevant code that appears beyond a negative preview. The project states this limit in its release notes and architecture document.[2]
This is the correct trade to expose. A completed search means the planned traversal finished. It does not mean every relevant byte was examined. Keep exact symbol search, direct reads, and test discovery beside semantic retrieval rather than behind it.
Retrieval cost is not task cost.
The project's ten-task SWE-bench comparison retained eight official solves in both cohorts. The 0.5.0 experiment cut native Jev cost by about 59 percent against the saved 0.4.3 cohort. Combined coding-agent plus retrieval cost rose by two to three percent. The maintainers accepted that trade for the release and state that the sample does not establish statistical equivalence or a speed gain.[3]
That result is more useful than a clean victory graphic. Cheaper retrieval can cause more exploration, patch revision, or verification later. Count the complete job, including failed attempts. Measure whether the patch lands and passes its checks.
The search root is a data boundary.
Eligible source content is sent to the selected provider. Default filters respect ignore files and exclude hidden paths, dependency directories, build output, binaries, and obvious credential files. The README says those filters do not guarantee that sensitive content is gone.[1]
Use the narrowest root that can answer the question. Do not treat an ignore file as a secrecy policy. Review provider and credential choices before sending proprietary code. Keep repository text in the data lane, even when a comment tells the agent to run something.
Use two search gears.
- Use exact search when you know a path, symbol, error string, configuration key, or test name.
- Use semantic retrieval when you know the behavior but not the repository's words.
- Read source around every returned excerpt. Follow imports, callers, tests, and configuration.
- Run the repository's own checks. Compare task success, total cost, elapsed time, and missed context.