Jev directory
CommunityJev Tools & CLIs
Jev Lint — npmjs.com
A natural-language linter for Node 24+ in which an ast-grep matcher selects the code and a one-sentence Jev rule returns a calibrated verdict. Ships 99 rules covering names, comments, tests, shell scripts, commit messages, and AGENTS.md files.
- 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 Jev Lint — mizchi.
Highlights
- A rule is one sentence; ast-grep picks the code and Jev answers with a probability.
- Ships 48 questions asked in several languages, 99 rules in all, listed in RULES.md.
- The worked example reports a 0.89 agreement against a 0.56 shipped cutoff.
- The API key is read only from TYPESAFE_API_KEY or TYPESAFEAI_API_KEY, never from the config file.
- Nothing to install to try it: Node 24+ and npx are enough for a first check.
Questions about this entry
Short answers drawn from the linked project or page.
Nothing needs installing to try it: set TYPESAFE_API_KEY and run npx -y jev-lint check examples with Node 24+ and npx. For a project, npm install --save-dev jev-lint, then npx jev-lint init writes a .jev-lint.yaml and npx jev-lint check src --dry-run shows what it would ask and the price.
A rule is one sentence, such as the comment above this code claims something that is not true of the code. An ast-grep matcher selects which code the model is asked about, and the answer is a probability; an answer at or above the rule's threshold becomes a finding.
Yes. The code being judged is sent to an API, which is what the key pays for; nothing runs locally except the ast-grep matcher. The key is read from the environment only and never from the config file, which belongs in version control.
jev-lint reads the key from the environment only, as TYPESAFE_API_KEY or TYPESAFEAI_API_KEY. The config file holds rules, thresholds and file selections, not a key, so it can be committed.
Everything that does not ask the model works without a key: --dry-run prices a run, jev-lint rules lists every loaded rule with its question, cutoff and file, jev-lint replay re-scores a recorded run, and CI can lint from a committed cache with no key at all.
It is not for anything a compiler, type checker or ESLint already decides. It is good at code that contradicts itself and poor at defects needing knowledge of a specific API, such as .sort() defaulting to lexicographic order; keep existing tools for those.
The documented run reports six findings over two files for a tenth of a cent, with the cost of a bigger run measured rather than extrapolated in docs/cost.md. --dry-run reports the price of a run without making a request.
Reactions & coverage
Posts, threads, and videos about this entry from around the web.
X: Vercel's fx safety reviewer, measured at 18× faster
Reddit: Early experiments wiring Jev into Pi as a safety layer and model router.
X: Decision outputs in Grep
Hacker News: jevmem keeps Claude Code project memory by asking Jev which turns are worth saving.
avinashjetwani61 pointsJevmem – automatic project memory for Claude Code, built on JevRead the thread on Hacker NewsFrom 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.