Community projectApplications

Jev CLI

By jtsang4

A configurable CLI for sending state and typed questions to Jev.

Visit project

Implementation overview

Provides configuration, diagnostics, and structured JSON evaluation output. The repository includes English and Chinese usage documentation and direct TypeSafe provider support.

What you can test

Use it to run Jev evaluations from a terminal, a shell script or CI: pass a state and a JSON object of boolean, choice or score questions, then read structured JSON from stdout. Inputs can come from a file or stdin, so a git diff can be checked against a saved questions file.

What you need

Install the published package with npm install -g @jtsang/jev-cli or bun install -g @jtsang/jev-cli; it runs on Node 22+ or Bun. Store your own TypeSafe key with jev-cli config set providers.jev.apiKey, then run jev-cli doctor, which sends one small evaluation (add --offline to check only the configuration). Settings live in ~/.jev-cli/config.yaml with 0600 permissions; command-line flags override environment variables, which override the file.

Limits and evidence

Jev returns judgments, not prose, so the CLI suits classification, routing, rubric scoring and automated checks rather than text generation. Each question is evaluated on its own against the same state; combine the answers in your code. The README describes boolean probabilities as uncalibrated, and the jev-latest and jev-preview aliases move when a release ships, so pin a version such as jev-1.13.0 once you set thresholds. Routing through the Vercel AI Gateway needs a separate gateway key. Jev Atlas checked the README; we have not run the CLI.

Example from the README

README example: pipe the current git diff in as the state and evaluate it against a questions file.

git diff | jev-cli eval --state-file - --questions-file ./checks.json

Read next and verify

Write the questions file · Build the same request in the lab · Project README

Topics

CLIJSONdeveloper tools

Request reference

Edit a small example and copy a real request before integrating the project.

Try a request