jev.nvim
Neovim plugin that asks every function in the buffer a plain-language question with Jev and lists hits in quickfix ranked by probability.
Overview
jev.nvim lets you ask a Neovim buffer a question in plain language, such as which functions build a SQL query by string concatenation or swallow errors. Treesitter splits the buffer into functions, one question per function goes to TypeSafe's Jev, and results land in the quickfix list sorted by probability, so the usual :cnext and :cdo workflow applies. It reads the buffer rather than the file, so unsaved edits are judged.
The README's motivation is that grep needs a pattern while many useful searches have none: the same idea is written five ways across languages, and a regex catches one. It is upfront that each function is judged alone, so questions about interactions between functions get the wrong list, and that the demo clip uses fixture probabilities from a test fake. The model is pinned to jev-1.13.0 because the threshold was measured against it, and concurrency, attempts and timeouts are configurable.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this function match the question (for example, builds a SQL query by string concatenation)? | yes · no |
How it works
- Run :Jev followed by a plain-language question
- Treesitter splits the buffer into functions
- Each function is sent to Jev with the question
- Hits above the threshold go to quickfix ranked by probability
Strengths
- Finds semantic matches grep misses across syntaxes
- Works on unsaved buffer content
- Fits the native quickfix workflow
- Model pinned to the version the threshold was measured on
Caveats
- Judges each function in isolation
- Requires a Treesitter parser for supported languages
- Requires a TypeSafe key; buffer content is sent to the API
Getting started
With lazy.nvim: { "valentynkit/jev.nvim", cmd = { "Jev", "JevSort", "JevClear" }, opts = {} }, then export TYPESAFE_API_KEY.At a glance
- Type
- Plugin
- Status
- beta
- Language
- Lua
- Runtime
- Neovim plugin
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Developer tooling: Neovim plugin that splits the buffer into functions with Treesitter, scores each against a plain-language question with Jev, and ranks answers by probability in quickfix.
yibie/awesome-jevNeovim plugin that splits the buffer into functions with Treesitter, scores each against a plain-language question with Jev, and ranks answers by probability in the quickfix window.
AnotiaWang/awesome-decision-modelsA Neovim plugin that asks a plain-language question of every function in the buffer and lists every Jev hit in quickfix, ranked by probability.
logicrw/awesome-jev-projectsNeovim plugin that splits the buffer into functions with Treesitter, scores each against a plain-language question with Jev, and ranks answers by probability in the quickfix window.
cobanov/awesome-jevNeovim plugin that asks the buffer a plain-language question: Treesitter splits it into functions, Jev scores each one, and answers land in quickfix ranked by probability.
hellogumbo/awesome-jevNeovim plugin that splits the buffer into functions with Treesitter, has Jev score each one against a plain-language question, and lists the answers in the quickfix window ranked by probability.
MrJev/awesome-jev
Frequently asked questions
What does Jev decide?
Whether each function in the buffer matches your plain-language question, as a probability.
What can it not do?
It cannot answer questions about how functions interact, because each is judged alone.
Which languages work?
Lua, Python, Rust, Go, JavaScript, TypeScript and TSX via Treesitter.
Related projects
CLI that asks one yes/no question of every function in a codebase with Jev and ranks them by probability: grep whose pattern is a question.
CLIbetaPythonSemantic grep that asks Jev a yes/no about every function for questions no regex can express, with cost reporting.
ProjectbetaDeterministic code-graph context for coding agents on Postgres, AGE and pgvector, with optional Jev or local re-selection of symbols.
MCP serverbetaPythonClaude Code plugin that adds Jev as an independent judge for review findings, debugging hypotheses, design options and search hits.
PluginbetaPR reviewer where Jev answers a Clean Code question set for every changed file and a writing model turns the verdicts into review prose.
ServicebetaTypeScriptRetrieval layer for Codex that finds evidence locally, optionally ranks sanitized excerpts with Jev, and returns bounded, cited evidence.
Projectbeta