Skip to content

oxlint-plugin-jev

Oxlint plugin where lint rules are plain-English yes/no questions about code that Jev answers, reporting matches above a cutoff.

Pluginprototype

Overview

oxlint-plugin-jev lets you write Oxlint rules in plain English. Each rule is a yes/no question about a function, a call, a JSX element or a whole file, such as whether a call writes personal data to a log or whether a function's name implies it only reads while its body writes. Each matching node is sent to Jev with the question, and the plugin reports an error when the yes-probability is at or above the rule's cutoff.

Rules live in .oxlintrc.json under a single jev/ask rule with an id, target, question and cutoff; file rules can add a location question to underline the right spot. The target decides what Jev reads, with no selector syntax. In CI, a ci: fail option makes runs fail if Jev cannot be reached rather than pass silently. The package is labelled experimental.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this call write personal data, such as an email or phone number, to a log or console?yes · no
Yes / noDoes this function's name imply it only reads data, while its body also writes or sends something?yes · no

How it works

  1. Define plain-English rules with targets and cutoffs.
  2. Oxlint visits matching functions, calls, JSX or files.
  3. Each match is sent to Jev with the question.
  4. Report when the yes-probability meets the cutoff.

Strengths

  • Semantic lint rules without writing AST logic.
  • Per-rule cutoffs.
  • CI fail mode prevents silent passes.

Caveats

  • Experimental package.
  • Sends code snippets to TypeSafe; cost scales with matches.

Getting started

npm i -D oxlint oxlint-plugin-jev, export TYPESAFE_API_KEY, and add jev/ask rules to .oxlintrc.json.

At a glance

Type
Plugin
Status
prototype
Language
TypeScript
Runtime
Oxlint JS plugin
Has code
yes

Use cases and integrations

How curated lists describe it

  • Oxlint rules written as plain-English questions about a function, call, JSX element or file, reported when the yes-probability clears your cutoff.

    MrJev/awesome-jev

Frequently asked questions

How do I write a rule?

As a yes/no question with a target (function, call, jsx or file) and a cutoff.

What happens if Jev is unreachable in CI?

With ci: fail, the run fails instead of passing quietly.

Is it stable?

No, it is marked experimental.

Related projects

  • Go linter whose rules are plain-English questions: static analysis picks nodes, Jev answers a Noul about each one.

    CLIbetaGo
  • Python/TypeScript/Go chatbot safety library checking user input and bot replies with Jev and returning one actionable verdict per message.

    LibraryproductionPython
  • Rust code-review gate asking Jev small typed questions about functions and tests, failing CI only on rules measured 80% right.

    CLIproductionRust
  • Coding-agent hook that asks Jev one yes/no per project rule on every edit or turn and makes the agent fix any violation.

    HookbetaTypeScript
  • Advisor for coding agents: git and Stop hooks flag test tampering, secrets and skipped hooks, with optional Jev review findings.

    Hookbeta
  • CLI that uses Jev to score JS/TS code comments for accuracy and usefulness and lists the weakest first.

    ProjectbetaTypeScript