Skip to content

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.

PluginbetaMIT

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

TypeQuestionAnswers
Yes / noDoes this function match the question (for example, builds a SQL query by string concatenation)?yes · no

How it works

  1. Run :Jev followed by a plain-language question
  2. Treesitter splits the buffer into functions
  3. Each function is sent to Jev with the question
  4. 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-jev
  • 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 the quickfix window.

    AnotiaWang/awesome-decision-models
  • A 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-projects
  • 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 the quickfix window.

    cobanov/awesome-jev
  • Neovim 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-jev
  • Neovim 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.

    CLIbetaPython
  • Semantic grep that asks Jev a yes/no about every function for questions no regex can express, with cost reporting.

    Projectbeta
  • Deterministic code-graph context for coding agents on Postgres, AGE and pgvector, with optional Jev or local re-selection of symbols.

    MCP serverbetaPython
  • Claude Code plugin that adds Jev as an independent judge for review findings, debugging hypotheses, design options and search hits.

    Pluginbeta
  • PR reviewer where Jev answers a Clean Code question set for every changed file and a writing model turns the verdicts into review prose.

    ServicebetaTypeScript
  • Retrieval layer for Codex that finds evidence locally, optionally ranks sanitized excerpts with Jev, and returns bounded, cited evidence.

    Projectbeta