Skip to content

jevkit

Rust CLI for Jev that lints typed question sets offline, then sends them and prints probabilities, labels and scores as JSON.

CLIbeta

Overview

jevkit is a command-line client for TypeSafe's Jev, installed as the jev binary (crate jevkit-cli). You write noul, choice and score questions in terse YAML or JSON, or inline with --noul, pass a passage, and get back JSON with probabilities, labels and score values on stdout.

Its main idea is validation before billing. The README points out that the API happily charges for questions that cannot inform you, such as a choice with one option or a score with one level, and that label descriptions act as the prompt. jev lint runs offline rule checks (about 0.5 ms) and returns a distinct exit code so CI or a pre-commit hook can reject such sets. Other features include a per-call usage ledger, layered config, keyring-stored keys and an agent skill so coding agents can drive the CLI. It is for developers and agents who call Jev from scripts.

What the decision model decides

TypeQuestionAnswers
Yes / noIs this risky? (any inline yes/no question)—
ChoiceWhich severity label applies to the passage?(inferred)low · medium · high
ScoreHow urgent is this passage?(inferred)—

How it works

  1. Write a question set in YAML/JSON or pass --noul inline
  2. jev lint checks it offline and exits 2 if a question is billed-but-useless
  3. jev ask expands the terse form to the canonical wire payload and calls Jev
  4. Parsed answers print as JSON; optional --log records request, tokens and cost

Strengths

  • Catches useless or forced questions before any paid call
  • Machine-friendly JSON output and documented exit codes for CI
  • Keys kept in the OS keyring, not shell history
  • Ships an agent skill for coding agents

Caveats

  • Calls the hosted Jev API (or a configured provider) for answers
  • README counts of lint rules differ between sources (13 vs 20)
  • Licence not stated in the list entry

Getting started

cargo install jevkit-cli (installs the jev binary), or curl -fsSL https://raw.githubusercontent.com/ariel-frischer/jevkit/main/install.sh | sh

At a glance

Type
CLI
Status
beta
Language
Rust
Runtime
CLI
Has code
yes
Has tests
yes

Use cases and integrations

How curated lists describe it

  • Developer tooling: Rust CLI that validates `Choice`/`Score`/`Noul` question sets with 13 offline lint rules before any Jev call, then sends the canonical wire payload and prints parsed, confidence-bearing JSON answers to stdout using exit code 2 to reject a billed-but-useless request.

    yibie/awesome-jev
  • Fast Rust CLI for TypeSafe Jev: typed decisions, offline linting before you pay.

    hellogumbo/awesome-jev

Frequently asked questions

What does jev lint check?

It flags question sets that would be billed but uninformative, such as single-option choices or criteria that just restate labels.

Is it faster than curl?

Not for the API call itself; the README says the saving is in what you write and in offline linting.

Does it need a TypeSafe key?

Yes for jev ask; jev lint works entirely offline.

Related projects

  • Hack Club's lightweight LLM proxy, listed for adding a Jev forwarding endpoint behind its auth, limits and usage logging.

    MCP serverproductionTypeScript
  • Go MCP server giving any client typed Jev decisions via OpenRouter or TypeSafe, with validated answers and no paid retries.

    MCP serverproductionGo
  • Unofficial hosted or local Jev MCP server giving agents a quick second opinion: it picks yes/no, scale or choice and returns probabilities.

    MCP serverbetaTypeScript
  • npm library that rate-limits, spend-caps, caches and redacts every Jev request made in a loop.

    LibrarybetaJavaScript
  • Rust CLI for Jev: ask yes/no, choice and rubric questions about text and branch on exit codes, JSON or MCP tools.

    MCP serverbetaRust
  • pip-installable Jev kit: a CLI for verify, screen, classify, extract, route and rerank, plus an MCP server for the primitives.

    MCP serverbetaPython