claudeers.
// Claude Plugins

claude-x-jev

Fast, cheap, typed decisions for Claude Code. Jev (TypeSafe's decision model on OpenRouter) sorts, checks, scores, gates and verifies at 0.3s and a fraction…

// Claude Plugins[ cli ][ api ][ claude ]#claude#plugins◷ MIT$open-sourceupdated 10 days ago

Install with your AI

Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.

Install and set up claude-x-jev (npm project) into my current project.
Found on https://claudeers.com/claude-x-jev
Repo: https://github.com/charlesdove977/claude-x-jev
Homepage/docs: —
Detected install method: npm → npm install claude-x-jev
Category: plugins. Platforms: cli, api.
Read the repo's README for exact setup and env vars, then install it and wire it into my project.

Claudeers Health Verdict:
unknown; community-verified: false. Confirm the source before running anything.
// or install directly (npm)
npm install claude-x-jev
// or clone
git clone https://github.com/charlesdove977/claude-x-jev

// compatibility

Platformscli, api
Operating systems—
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguagePython

Get your FREE $2.50 API credits to access TickAtlas financial data ↗

Claude x Jev

Claude x Jev

Jev sorts. Claude writes. Jev is a tiny AI that makes one decision at a time, in a third of a second, for a fraction of a cent, and tells you how sure it is. Claude reads, thinks, and writes. This free Claude Code skill puts the two together so Claude only reads what needs a real brain.

Community: start.ccstrategic.io/skool (free) · Site: charlieautomates.com · YouTube: @charlieautomates


Install

npx claude-x-jev install --with-commands

Restart Claude Code, then:

/jev-setup        once: one OpenRouter key, one live test call
/jev-classify     sort anything
/jev-route        Jev pre-sorts, Claude reads only the unsure ones
/jev-gate         a 0.3 second safety check in front of tool calls

You need python3 (3.8 or newer) and an OpenRouter API key. Nothing else. Five dollars of credit covers hundreds of thousands of decisions.


What Jev is, in plain words

Jev is made by TypeSafe and lives on OpenRouter. It is not a chat model. You do not prompt it and read a paragraph back.

You hand it a piece of text and a fixed set of choices. It hands back a pick, a probability for every choice, and a confidence number. It answers three kinds of questions:

Question typeYou askYou get back
choiceWhich one of these?the label, a probability per label, a confidence
noulIs this true?a number from 0 to 1
scoreWhere on this scale?a position, a probability per level, a confidence

That is the whole model. It answers in about a third of a second. Input costs about 4 cents per million tokens. Output is free. Same input, same answer, every time. It cannot write a sentence. It cannot explain itself. It can tell you, on every answer, how sure it is.


What Jev does better than Claude

I gave both models the same 216 real emails from my inbox, the same four questions, and the same label definitions.

Jev 1.13Claude Opus 5.5
Per email0.3 s1.3 s (24 at a time)
All 21665 s one at a time, about 6 s in parallel37 s in 9 parallel batches, 4 min 46 s one after another
Cost$0.01$4.73
Same answer twiceAlwaysUsually
Says how sure it isEvery answerOnly if asked
Runs outside Claude CodeYes: cron, n8n, a hook, a scriptNeeds a session

They agreed on 87 to 94 percent of the labels. The number that matters more:

When Jev said it was at least 70 percent sure (82 percent of the inbox), it matched Claude 95.5 percent of the time. When it was less sure, only 47 percent. And it told us which ones were which.

  • 400 times cheaper. And it never touches your Claude usage window or your context.
  • No drift. Same answer every run.
  • A real confidence number. That number is your routing switch.
  • It cannot make things up. It has no words to make them up with. On four of the 28 disagreements Claude saw deals that were not there. A debate-club invite became "brand deal, budget stated." Jev did not fall for it.

What Claude does better

  • Writing. Every draft, reply, summary, and explanation. Jev returns zero words.
  • Filling gaps in your labels. Claude used knowledge it was never given. Jev used exactly the words it was given. Eight of the 28 disagreements were affiliate offers that my label text technically excluded. Claude was right. The fix was one sentence in the label.
  • Connecting answers. Jev answers each question alone. One email came back as vendor_pitch and affiliate_only and 92% likely to pay at the same time. Claude sorts that out in its head. This skill sorts it out with a rules block in the preset.
  • Memory. Claude can know the same brand came in through five agencies, or that you quoted a price last month. Jev sees one request.
  • Following a playbook. Rate cards, tone rules, relationship holds. Jev checks one condition at a time. It cannot read a policy and act on it.

The split: Jev sorts, checks, scores, gates, and verifies. Claude reads the unsure slice and writes everything. A person approves what ships.


The 13 commands

CommandWhat it doesQuestion type
/jev-setupKey in place, one live call verified, model pinned
/jev-statusCredits, uptime, latency, and a cost estimate for a batch
/jev-classifyPick-one labels over many items, with confidencechoice
/jev-checkYes or no over many itemsnoul
/jev-scoreRank items on a scale you definescore
/jev-routeJev labels everything; sure items act by label, unsure items go to Claude with full textchoice + threshold
/jev-verifyCheck Claude's drafts against the thread and your rules before sendingchoice + noul
/jev-gateApprove, block, or escalate a tool call; installs as a PreToolUse hooknoul
/jev-matchAre these two threads the same company? Collapse duplicatesnoul
/jev-tunePick the confidence threshold from items a person checked
/jev-lintCatch vague labels, missing catch-alls, and contradicting answers before you spend
/jev-benchJev vs Claude on your own data: agreement, cost, time, disagreements
/jev-watchRun a preset on cron, launchd, or n8n with nobody at the keyboard

Every command goes through one file, skill/scripts/jev.py. No dependencies. You can call it straight from a terminal too:

python3 ~/.claude/skills/claude-x-jev/scripts/jev.py status
python3 ~/.claude/skills/claude-x-jev/scripts/jev.py ask   --preset email-triage --input inbox.json --out labels.jsonl
python3 ~/.claude/skills/claude-x-jev/scripts/jev.py route --preset email-triage --input inbox.json --out sorted
python3 ~/.claude/skills/claude-x-jev/scripts/jev.py gate  --state '{"tool":"Bash","tool_input":"{\"command\":\"git push --force\"}","cwd":"/app","task":"fix tests"}'
python3 ~/.claude/skills/claude-x-jev/scripts/jev.py tune  --results labels.jsonl --truth checked.jsonl --question kind

How to use it

1. Set up (two minutes)

Run /jev-setup. It tells you where to get the key (openrouter.ai, then Settings, then Keys), where to put it (export OPENROUTER_API_KEY=... in your shell profile), and proves it with one live call that costs a hundredth of a cent. The key is never pasted into chat and never written into the skill.

2. Sort something

Run /jev-classify. Pick a bundled preset or describe your labels and it writes one. It lints the preset, dry-runs one item so you see exactly what leaves your machine, runs five so you can check them, then runs the batch. You get a JSONL or CSV file with a label, a confidence, and the probabilities for every item, plus one summary line: items, seconds, cost.

3. Put Jev in front of Claude

Run /jev-route. Same run, but the output is split: sorted.sure.jsonl (act on these by label) and sorted.unsure.items.jsonl (Claude reads only these, with their full text). On my inbox that meant Claude read 38 emails instead of 216, for about 85 cents instead of $4.73.

4. Check Claude's work

Run /jev-verify. One item per draft: the thread it answers, your rules, the draft. Jev returns supported, unsupported, or declined, plus rule and tone checks. One failed check bounces the draft back to Claude. Nothing sends.

5. Gate tool calls

Run /jev-gate. Two questions per call: can this be undone, and does it serve the task. Start in shadow mode (nothing is auto-allowed, dangerous things are still denied), read the log for a few days, then go live at 0.9. If anything errors, the hook prints nothing and exits 0, so Claude Code's own permission prompt shows as usual. It can fail closed to a human. It can never fail open.

npx claude-x-jev hook --write      # merges the PreToolUse entry into ~/.claude/settings.json, backup kept
export JEV_GATE_APPROVE=1.01       # shadow mode: nothing can reach 1.01, so nothing auto-allows

6. Tune, then automate

/jev-tune sweeps thresholds against items a person checked and prints coverage and precision at each one. /jev-watch writes a runner for cron, launchd, or n8n so the sorting happens with nobody at the keyboard.


Presets

A preset is one JSON file: the questions, what each label means, the confidence bars, and the rules that connect answers to each other. Six generic ones ship in skill/presets/:

PresetSortsQuestions
email-triageInbound emailpaid deal / vendor pitch / peer collab / non-pitch · money step · will they pay
comment-triageSocial commentsquestion / keyword drop / praise / critique / spam · needs reply · reply value 0 to 3
lead-qualifyForm and DM leadsreal business · decision maker · heat cold to ready · what they want
draft-verifyGenerated repliesgrounded / unsupported / declined · follows rules · tone ok
tool-gateAgent tool callsreversible · serves task
match-entityPairs of threadssame entity · same ask

They are examples. Copy one to ~/.claude/jev-presets/, rewrite the labels for your data, run /jev-lint. Updates overwrite the bundled folder and never touch yours.

The label text is the model. There is no system prompt to rescue a vague label. frameworks/criteria-writing.md has the eight rules. /jev-lint enforces the floor.


Inside the skill

skill/
├── SKILL.md              entry point, 13 commands
├── scripts/jev.py        the one Decisions API caller: ask, route, gate, match, tune, lint, bench, status
├── presets/              6 generic question packs + schema README; presets/user/ is yours and survives updates
├── hooks/pre-tool-gate.sh  PreToolUse hook, fails closed
├── tasks/                one file per command
├── frameworks/           primitives · criteria-writing · cascade · jev-vs-claude (the benchmark)
├── templates/            preset · run-report · bench-report
├── checklists/           setup-complete · preset-ready · before-autoroute
└── context/install.md    the only file setup writes: status, model pin, key location (never the key)

One thing to know

Jev lives at POST https://openrouter.ai/api/alpha/decisions, outside the /api/v1 path. Send it to the chat endpoint (including through the OpenRouter MCP's chat tool) and you get HTTP 400: "is a decisions model and cannot be used with the chat/completions endpoint." This skill never does that. The MCP is still handy for credits, uptime, and docs, and /jev-setup offers it as optional.


Build your own skill like this

This skill was scaffolded with SkillSmith and then filled in by hand. SkillSmith is a Claude Code plugin that turns a workflow into a proper skill folder (entry point, tasks, frameworks, templates, checklists) in minutes. If you want to package your own workflow the same way:

Resources

Credits

  • Jev is built by TypeSafe and served by OpenRouter.
  • The benchmark numbers come from a 216-email run on 2026-09-25. Reproduce them on your own inbox with /jev-bench.
  • Built by Charles J Dove.

License

MIT

// faq

What is claude-x-jev?

Fast, cheap, typed decisions for Claude Code. Jev (TypeSafe's decision model on OpenRouter) sorts, checks, scores, gates and verifies at 0.3s and a fraction of a cent per item. Claude keeps the reading, writing and judgment.. It is open-source on GitHub.

Is claude-x-jev free to use?

claude-x-jev is open-source under the MIT license, so it is free to use.

What category does claude-x-jev belong to?

claude-x-jev is listed under plugins in the Claudeers registry of Claude-compatible tools.

7 views
★ 16 stars
unclaimed
updated 10 days ago

// embed badge

claude-x-jev on Claudeers
[![Claudeers](https://claudeers.com/api/badge/claude-x-jev.svg)](https://claudeers.com/claude-x-jev)

// retro hit counter

claude-x-jev hit counter
[![Hits](https://claudeers.com/api/counter/claude-x-jev.svg)](https://claudeers.com/claude-x-jev)

// reviews

// guestbook

0/500

// related in Claude Plugins

🔓

A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.

// pluginsmultica-ai/★ 215,548[ claude ]
🔓

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explainin…

// pluginsanthropics/⟨Python⟩★ 147,969[ claude ]
🔓

"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/

// pluginsHKUDS/⟨Python⟩★ 50,756◷ Apache-2.0[ claude ]
🔓

financial-services — a Claude ecosystem project on GitHub.

// pluginsanthropics/⟨Python⟩★ 38,867◷ Apache-2.0[ claude ]
→ see how claude-x-jev connects across the ecosystem