Updated

Published

jevctl puts Jev on the command line, with a compaction hook that keeps lines verbatim

jaidev posted jevctl, a friend's npm CLI that wraps TypeSafe's Jev as shell commands. verify, screen, classify, extract, find, rerank, match, route, ask, compact, and batch. Keys can be TypeSafe, OpenRouter, or Cloudflare. compact drops stale tool results the way Tran's sieve does, at a 0.5 keep threshold.

jaidev posted on September 20 that Jev CLI is out. A later tweet in the thread says it is a friend’s project, shared because the author is not on X. The repo is Nasrallah-AL/jev-cli, MIT. The npm name is jevctl. The command is jev. The site is jevcli.vectorz.app.

Install is npm install -g jevctl, Node.js 20.12 or newer. jev auth login stores a TypeSafe key in the OS keychain. OpenRouter and Cloudflare Workers AI work when those keys are already in the environment and no TypeSafe key is set. OpenRouter maps jev-latest to typesafe/jev-1.13. Cloudflare serves typesafe/jev with no version pin.

The first-run sample is a claim check:

jev verify "Helmets are optional for adults" \
  --evidence "Every rider must wear an approved helmet."

The README’s table shows verdict contradicted, confidence 1.00, action auto, exit code 2. Code 2 is the --fail-on gate for CI and hooks.

The other commands wrap the same model: screen for prompt injection and off-topic text, classify, extract for a span that looks like an email or amount, find and rerank, match for record pairs, route for a handler plus arguments, ask for a raw noul, choice, or score, batch over many rows. compact scores old tool calls in an agent transcript. Default keep-threshold is 0.5. Kept lines stay verbatim. The docs say this is adapted from Tran’s keep-or-drop sieve. A Claude Code plugin adds /jev commands and can replace the built-in compaction summary with that procedure.

LiteLLM’s proxy guardrail does the same drop at 0.2, in front of the generator. We did not install jevctl.

This site's reading

Editorial notes evaluating claims against primary sources, contextualizing findings alongside related implementations, and defining technical terms.

Verify

jaidev's September 20 thread is the primary post. He wrote that the project is a friend's, and that he is sharing it because the author is not on X. The repo is Nasrallah-AL/jev-cli, MIT. npm package jevctl, command jev, Node.js 20.12+. Website jevcli.vectorz.app. Providers: TypeSafe direct, OpenRouter (jev-latest maps to typesafe/jev-1.13), Cloudflare Workers AI (typesafe/jev, no version pin). First-run sample: jev verify "Helmets are optional for adults" against "Every rider must wear an approved helmet" returns contradicted at confidence 1.00 and exit code 2. compact default keep-threshold 0.5, preserve-recent 6, adapted from tamaratran/fast-jev-compaction. A Claude Code plugin adds /jev commands and can replace the built-in compaction summary. We did not install the package.

Compare

LiteLLM's typesafe guardrail also drops older tool results and keeps kept text verbatim. Its default relevance_threshold is 0.2, and it sits on the proxy in front of Chat Completions. jev compact is a CLI over a session jsonl, default 0.5, and the plugin can run it inside Claude Code. Tran's fast-jev-compaction is the earlier sieve this command adapts. AstroHan's 30-task run is the one on this desk that kept the agent fixed and reported whether the task still passed. typesafe-cli and several other jev-cli packages exist; this one is the npm name jevctl from Nasrallah-AL.

Terms

jevctl
npm package for Nasrallah-AL/jev-cli. The command is jev. It wraps TypeSafe's Jev as verify, screen, classify, extract, find, rerank, match, route, ask, compact, and batch.
keep-threshold
jev compact's default 0.5. A tool call or its result is kept when Jev's probability is at least this. LiteLLM's similar guardrail defaults to 0.2.

Sources

  1. jaidev, Jev CLI is out
  2. jevctl website
  3. Nasrallah-AL/jev-cli