jevlint (Go)
Go linter that extracts code units with Tree-sitter and asks a decision model whether each passes a plain-language rule.
Overview
Jevlint (codegirl-007) checks code against rules written in plain language, a way to 'codify code taste'. It uses Tree-sitter to extract code units such as functions, then asks the configured decision backend whether each unit passes each rule. TypeSafe's Jev is the default provider, with OpenAI, OpenRouter and Cloudflare also supported.
The CLI has init (detect languages and write a starter config), doctor (verify config and credentials), check (run the rules, optionally only on changed files and with caching and concurrency), eval (score rules against fixtures) and plugin commands for rule packs. Exit code 0 means no failures above the confidence thresholds, so it fits CI. Prebuilt binaries are provided for Linux, macOS and Windows. It is unrelated to the other JevLint projects of similar name.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this code unit pass the rule? | — |
How it works
- jevlint init writes .jevlint.json; add rules or install a pack
- Tree-sitter extracts code units from the files
- Each unit and rule is sent to the decision provider
- Failures above confidence thresholds are reported; non-zero exit fails CI
- jevlint eval checks rules against fixtures
Strengths
- Unit-level checks rather than whole-file
- Result caching and --changed for faster runs
- Multiple providers, with Jev as default
- Rule fixtures make rule quality measurable
Caveats
- Building from source needs CGO and a C compiler
- Code is sent to a hosted provider
- Rule quality depends on how questions are phrased
Getting started
go install github.com/codegirl-007/jevlint/cmd/jevlint@latest, then jevlint init, export TYPESAFE_API_KEY, jevlint doctor and jevlint check .At a glance
- Type
- Project
- Status
- beta
- Language
- Go
- Runtime
- CLI
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
A linter to codify code taste using Jev
logicrw/awesome-jev-projectsA linter to codify code taste using Jev.
hellogumbo/awesome-jevExtracts code units with Tree-sitter and asks whether each passes a rule written in plain language; prebuilt binaries. Unrelated to the JevLint above.
MrJev/awesome-jev
Frequently asked questions
What does it decide?
Whether each extracted code unit passes each plain-language rule, with a confidence compared to your threshold.
Must I use TypeSafe?
No. Jev is the default, but OpenAI, OpenRouter and Cloudflare providers are supported.
How do I check a rule is reliable?
Write fixtures in jevlint-evals.json and run jevlint eval.
Related projects
Rust code-review gate asking Jev small typed questions about functions and tests, failing CI only on rules measured 80% right.
CLIproductionRustCoding-agent hook that asks Jev one yes/no per project rule on every edit or turn and makes the agent fix any violation.
HookbetaTypeScriptAdvisor for coding agents: git and Stop hooks flag test tampering, secrets and skipped hooks, with optional Jev review findings.
HookbetaRead-only Go CLI that checks files against your plain-language code rules with Jev, locally or in CI.
CLIbetaGoCLI and agent commands auditing a git diff against YAML standards packs, scoring each hunk with Jev so agents fix only flags.
Agent skillbetaTypeScriptFuzzy linter hook for Claude Code and Codex where Jev checks each written file against team rules and reports violations at edit time.
HookbetaTypeScript