Skip to main content

jev-checker

A Python semantic checker that adds Jev powered review diagnostics alongside Ruff and Pyrefly. Install from PyPI when released:

python -m pip install jev-checker

Quick start

Choose a provider and set its API key:

export TYPESAFE_API_KEY=...
jev check .

Or use OpenRouter:

export OPENROUTER_API_KEY=...
jev check . --provider openrouter

The jev-checker check executable is an alias for jev check.

Check committed changes against the merge base of a branch:

jev check . --diff origin/main

--diff reviews commits only. It does not include uncommitted working tree changes. The source excerpts selected for review are sent to the chosen provider after credential pattern redaction. Redaction cannot identify every secret; review your provider's data policy before using the checker on sensitive code.

Diagnostics

The default output resembles other checkers:

src/auth.py:42:5: error: a protected operation may lack authorization [JEV201]

1 error, 0 warnings, 0 infos

error fails the check; warnings and infos do not unless --warnings-as-errors is set. Configure rule levels in pyproject.toml:

[tool.jev]
provider = "typesafe"
select = ["JEV1", "JEV2", "JEV3", "JEV4", "JEV5", "JEV6", "JEV7"]

[tool.jev.levels]
JEV305 = "warning"
JEV601 = "error"
JEV704 = "info"
JEV503 = "off"

The checker keeps diagnostic level, Jev probability, confidence, and impact score as separate values. Use --output-format full for evidence details or json for a machine readable report. Supported formats are concise, full, json, and github. Exit codes are 0 for no errors, 1 for blocking diagnostics, and 2 when the requested analysis cannot be completed. --exit-zero affects only code 1. JSON reports also distinguish supported, dismissed, context-limited, and incomplete candidates while omitting raw source excerpts.

Built-in rules

  • JEV1 correctness, JEV2 security, JEV3 reliability, JEV4 compatibility
  • JEV5 test evidence, JEV6 performance, JEV7 observability

Security, correctness, reliability, and compatibility rules default to errors. Test, performance, and observability rules default to warnings. Use --select, --ignore, and --rule-level RULE=LEVEL to adjust the run.

Checker pipeline

Run each tool as a separate step so its result stays visible:

ruff check .
ruff format --check .
pyrefly check
jev check . --diff origin/main --output-format json > jev-report.json

Provide the diff base in the CI checkout. Keep provider credentials in the CI secret store and run authenticated reviews only in trusted jobs. jev check . --dry-run reports file and region counts without using credentials or the network. The default run allows up to 100 API attempts and 20 evidence follow-ups, with at most three concurrent requests. The local SQLite cache lasts 24 hours for pinned models; mutable aliases such as jev-latest bypass it. Use --no-cache to disable it for a run. The provider controls request pricing and rate limits.

Development

python -m pip install -e '.[dev]'
ruff check .
ruff format --check .
pyrefly check
pytest
pytest --cov=jev_review --cov-report=term-missing

The tests use simulated providers and do not make paid API calls. See docs/judgment-catalog.md for rule prompts and evidence criteria, and docs/implementation-plan.md for the implementation checklist and remaining release work.

Metadata

Release files for jev-checker 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jev-checker 0.1.0
File Size Uploaded
jev_checker-0.1.0.tar.gz 111.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jev-checker 0.1.0
File Interpreter ABI Platform
jev_checker-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 145.5 kB

Release files / jev_checker-0.1.0.tar.gz

Download URL jev_checker-0.1.0.tar.gz
Size 111.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e91e4c42de1e10741f2160a633bf02d11251a6b5b2f6c62aedd215f150054a72
BLAKE2b-256 checksum
How to use checksums
4049c4a43bb0d66be300a95a6349049a598da01c41fa35df1052541ac03f6b1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / jev_checker-0.1.0-py3-none-any.whl

Download URL jev_checker-0.1.0-py3-none-any.whl
Size 33.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
632059ee2b2ca1dc424934511a026c46fbf8c440c36580786265d95b694d8efe
BLAKE2b-256 checksum
How to use checksums
47188f9da4852b6a55e48daa2aae02fd11680b05f761361d716bba89a6cfe2c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page