Jev directory
CommunityJev Integrations & Adapters
Oxlint Plugin Jev — npmjs.com
Oxlint JS plugin that turns plain-English yes/no questions into lint rules answered by TypeSafe Jev. Rules target a function, call, JSX element, or whole file, and report when Jev's yes-probability clears a per-rule cutoff.
- Reading time
- 2 min
- Published by
- Community
- Added
- Nov 2026
This is one of several Jev listings for the same project. The canonical entry is Oxlint Plugin Jev — wobsoriano.
Highlights
- Adds one rule, jev/ask, configured in .oxlintrc.json with id, target, question, and cutoff fields.
- Targets are limited to function, call, jsx, and file; there is no selector syntax.
- File rules can add a location question with its own cutoff above 0.5 and at most 1.
- Defaults: 10000 ms per-file timeout, 25 matches per file, 4000 characters per snippet, model jev-latest.
- Answers are cached under node_modules/.cache/oxlint-plugin-jev; changing a cutoff or an id does not re-ask.
Questions about this entry
Short answers drawn from the linked project or page.
Run npm i -D oxlint oxlint-plugin-jev and export TYPESAFE_API_KEY from console.typesafe.ai. Then add the plugin to jsPlugins in .oxlintrc.json and configure the jev/ask rule with your English questions, targets, and cutoffs.
Only four: "function" (Jev sees the whole function, including an arrow or method name), "call" (the whole call expression), "jsx" (the whole element with children), and "file" (the whole file). There is no selector syntax and no other target.
Cutoff is a number from 0 to 1. The plugin reports an error when Jev's yes-probability for the question is at or above that cutoff. The wording of the question is the rule, so imprecise questions fire on legitimate code.
The plugin prints one warning and reports nothing for that file, whether the key is missing, the request times out, or the API errors. Under CI with ci set to "fail", the run fails instead. Outside CI it always skips.
The oxlint VS Code extension lints as you type, and every keystroke inside a match is a paid request that blocks the language server until Jev answers. Keep jev/ask out of the config your editor reads and put it in an overlay for CI and pre-push.
The default is "jev-latest". Once your cutoffs are tuned you can pin a versioned id such as "jev-1.13.0". Each diagnostic names the version that answered it. TYPESAFE_BASE_URL points the plugin at another host.
Above 254 nonblank lines, Jev selects a range and refines it in follow-up requests with the same full-file context. Files truncated by maxSnippetChars keep the first-line diagnostic. Answers are cached and re-asked only when a snippet or question changes.
Reactions & coverage
Posts, threads, and videos about this entry from around the web.
X: Agent Handoff Gate: agents verify what they hand off
X: Jev as an LLM guardrail inside Agentgateway
X: Vercel's fx safety reviewer, measured at 18× faster
Reddit: Early experiments wiring Jev into Pi as a safety layer and model router.
From the Jev guides
Original write-ups on what this entry is for.
From the Jev AI model community
Posts from builders shipping with Jev right now.