Skip to main content

Jev Studio logo

Jev Studio


One-stop kit for playing with TypeSafe's Jev: MCP tools for Choice/Noul/Score, ready-made prompt libraries, and slash commands for every cookbook.

status version license commits repo size code style

Install

pip install jev-studio

Two commands are installed:

  • jev — the CLI for TypeSafe's Jev decisions (verify, screen, classify, extract, match, route, ask, find, rerank, compact, batch).
  • jev-studio — the MCP server that serves the Jev ruleset over stdio.

The CLI: jev

Jev turns natural-language state and a set of typed questions into typed answers (yes/no, choice, or score) with probabilities. The CLI wraps it in one-command judgments over text you pipe in.

Authenticate

Any one of these is enough (first found wins):

jev auth login               # store TYPESAFE_API_KEY in the OS keychain (or 0600 file)
export TYPESAFE_API_KEY=...  # from https://console.typesafe.ai/settings/keys
export OPENROUTER_API_KEY=sk-or-...
export CLOUDFLARE_API_TOKEN=... CLOUDFLARE_ACCOUNT_ID=...

Inspect what's live: jev auth status.

Commands

Every command speaks JSON (--json), Markdown (--md), JSONL, CSV, TSV, or a colored text table. Use --pluck to lift one field. Use --fail-on <list> to make the process exit 2 when a judgment condition trips (great for CI gates).

Judgments

  • jev verify — check claims against evidence. Verdict + probabilities per claim, with a supporting_evidence back-reference when there is more than one evidence item.
  • jev screen — flag prompt injection, empty/boilerplate content, and irrelevance before an agent reads text. Recommends pass / review / block / skip.
  • jev classify — one label (single), several (--multi), or a hierarchy (--taxonomy). Confidence-gated auto vs review.
  • jev extract — pull typed values out of text. Regex proposes candidates, Jev picks, code normalizes. Builtins: email, phone, url, amount, date, percent, number. Custom regexes via name=/regex/:description.
  • jev match — decide if record pairs are the same, different, or unclear. Feed pairs, one list, or two lists (cross product).
  • jev route — pick a handler for a request and fill its closed-set arguments in one call.
  • jev ask — raw System One passthrough for any state and any questions (repeated --noul, --choice, --score, or --questions-json).

Ranking

  • jev find — rank up to 250 candidates against a plain-language query. Returns top-K and a document-level answered / partial / absent verdict.
  • jev rerank — score each candidate independently and sort. Several can be relevant, or none.

Pipelines

  • jev compact — shrink an agent transcript by dropping stale tool calls verbatim; recent turns are always kept.
  • jev batch — run a per-row command (classify, screen, verify) over JSONL or newline-delimited input with a bounded worker pool. Emits JSONL, one line per row.

Account

  • jev models — list the models available to your account.
  • jev authlogin, logout, status. Keychain-first, file fallback.
  • jev configshow, path, keys, set, unset. Defaults < file < env < flags.
  • jev update — check PyPI for a newer release.

Examples

# Verify a claim against a file
jev verify "Helmets are optional for adults" --evidence @ordinance.txt

# Screen scraped HTML for prompt injection before letting an agent see it
curl -s https://example.com | jev screen --purpose "extract pricing" --fail-on block,review

# Classify a ticket in three labels, JSON output
jev classify "The invoice total is wrong" --labels billing,bug,feature --json

# Extract an email and a date from an invoice
jev extract @invoice.txt --want email --want date --context "an invoice"

# Rank documentation files for a question
jev find "how do I rotate API keys" --files 'docs/*.md' -k 3

# Batch-classify tickets with concurrency 8
jev batch -i @tickets.txt --concurrency 8 -- classify --labels billing,technical,sales

# Route a support request to a handler
echo "cancel my subscription" | jev route --handlers "cancel:cancel plan,upgrade,help"

# Inspect and edit configuration
jev config set verify.autoAccept 0.9

Exit codes

Code Meaning
0 Command completed and no --fail-on condition matched.
1 Usage, configuration, input, or transport error.
2 Judgment condition matched (e.g. a contradicted claim, injection blocked).

Input references

Anywhere the CLI takes a value it accepts text, @path/to/file, or - (stdin). Escape a literal leading @ as @@.

Global flags

-m, --model NAME       Jev model, e.g. jev-latest or jev-1.13.0
-P, --provider NAME    auto | typesafe | openrouter | cloudflare
--timeout MS           per-request timeout
--dry-run              print the request that would be sent; don't call the API
--json, --md, --format text|json|jsonl|csv|tsv|md
--pluck PATH           print one field (e.g. label, results[].verdict)
-q, --quiet            omit the usage/model footer in text output
--no-color             disable ANSI colors

Configuration

Config file: $XDG_CONFIG_HOME/jev/config.json (or ~/.config/jev/config.json). Env overrides file, flags override env. See jev config keys for every settable path.

Environment overrides:

JEV_PROVIDER   JEV_MODEL   JEV_TIMEOUT_MS   JEV_FORMAT
JEV_CONFIG     JEV_CREDENTIALS   JEV_CREDENTIAL_STORE   JEV_NO_STORED_CREDENTIALS
JEV_DEBUG=1    # include stack traces on error

The MCP server: jev-studio

jev-studio            # speaks MCP over stdio

Point an MCP host at it:

{
  "mcpServers": {
    "jev": { "command": "jev-studio" }
  }
}

Exposes:

  • Prompt jev — the Jev ruleset as a user message. Optional mode: lite, full, ultra. Omit for full.
  • Tool jev_instructions — same text plus structured output ({mode, instructions}) for hosts that pull context via tools. Read-only.

Develop

pip install -e ".[dev]"
pytest

Ship to PyPI:

python -m build
twine upload dist/*

Claude Code

/plugin marketplace add utk2103/jev-Studio
/plugin install prompt-studio@jev-studio

Two separate prompts. Start a new session; the ruleset lands in system context on SessionStart.

Local clone:

/plugin marketplace add /path/to/jev-Studio
/plugin install prompt-studio@jev-studio

Codex

codex plugin marketplace add utk2103/jev-Studio
codex plugin add prompt-studio@jev-studio

Try something fun

A curated collection of 726 Jev use cases plus 50 runnable evals — every build linked to its project and source post. Search it, copy a brief, hand it to your agent.

Browse: jev-directory.netlify.app

Credits

The CLI is a Python port of the TypeScript jev-cli, rebuilt on the standard library with the same command surface and question shapes.

Contributing

See CONTRIBUTING.md.

License

MIT License — see LICENSE.

Release files for jev-studio 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-studio 0.1.0
File Size Uploaded
jev_studio-0.1.0.tar.gz 42.6 kB Details

Built distribution (wheel)

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

Total release size: 89.5 kB

Release files / jev_studio-0.1.0.tar.gz

Download URL jev_studio-0.1.0.tar.gz
Size 42.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e0a750e01de0250d4d6606d20b1f06f173f386134efb620db9a35d9b5822b8e0
BLAKE2b-256 checksum
How to use checksums
2752a48a184350182ebe4d5f492c436c073f21422898c3c2c2f3b9e3478c228d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

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

Download URL jev_studio-0.1.0-py3-none-any.whl
Size 46.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73f7584d4f79c22e73e07090083ab66c31621e77e10650d33cb19df16e371a9a
BLAKE2b-256 checksum
How to use checksums
2eb45928dc254ee70c1b8684ddcf32baea9dd1a6cdf7d750cc33f6a471ed9ccd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release history Release notifications | RSS feed

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