Loading...
Loading...
Get a fast, cheap, typed judgment over text or JSON from the jev CLI — a yes/no probability, one choice among labels, or an ordinal score — bare calibrated answers, never prose or explanations. Runs now from a shell or agent, in bulk (one decision per line) and in pipelines (exit codes, semantic grep). Use to classify, triage, route, screen, rank, filter or bulk-label items such as emails, customer feedback, chat or group messages, tweets, logs, git diffs or user requests, and as a cheap pre-filter before expensive LLM reading, a guardrail check, or a model/agent router. 适用:分类、筛选、分诊、路由、打分、是非判断、批量打标签、语义过滤——只要结论,不要解释。Not for judgments that must come with an explanation, analysis or a written reply; not for writing, summarizing or extracting text; not for math or date arithmetic. To design or code a TypeSafe integration inside an application, use the official `typesafe-ai` skill. Unofficial; calls TypeSafe's Jev model through the TypeSafe API (default) or OpenRouter.
npx skill4agent add okooo5km/jev jevjevnoulchoicescorejev --versionscripts/jevmkdir -p ~/.local/bin && ln -sf "<this skill's directory>/scripts/jev" ~/.local/bin/jevTYPESAFE_API_KEYOPENROUTER_API_KEY$JEV_ENV_FILE<config dir>/.env--provider$JEV_PROVIDERjev provider default IDjev provider listjev auth statusjev auth checkjev auth set--provider openrouterauth set --stdinjev auth removenoulchoicescorecriteria| Need | Command | Plain stdout | Exit code |
|---|---|---|---|
| Yes/no | | | 0 yes · 1 no · 2 error |
| One of N | | | 0 · 1 below |
| Ordinal score | | | 0 · 2 error |
| Keep matching lines | | the matching input lines | 0 some · 1 none · 2 error |
| Several questions at once | | aligned table | 0 · 2 error |
| Raw API body | | response JSON | 0 · 2 error |
-s "TEXT"-s @file--text-l-j 8--field KEYfilter--json-ltypenoulyeschoicescorelabelchoicescoreprobabilitiesconfidence--verbose≈$-l-lfilter-jyesfilter-t P--true--falsepick -pscore -pjev yes "用户在要求退款吗?" -s "Zipic 一打开就闪退,钱退我!" # yes 0.97
jev pick "该交给谁处理" code="写代码或改项目" research="需要联网查资料" --other -s "$request" --json
jev score "这条评价给几星" --range 1-5 -s @review.txt # 3.30 3
tail -f app.log | jev filter "日志表示用户可见的故障" --false "调试信息、正常请求"
jev run feedback -l --field text --json < tickets.jsonl > labeled.jsonlfilter "包含具体可行动的信息"filter "消息给出了具体的技术、产品或行业信息" --false "闲聊、问候、广告、引流、卖课"--true--falsename="description"--other-lconfidencepick --min-confidence 0.7yes -t 0.8jev runjev run NAMEjev run path/to/spec.jsonmailfeedbacksignalcommitgit diff --cachedroutemodel<config dir>/specs/~/.config/jev/specs/XDG_CONFIG_HOMEtomllib{
"description": "One line shown by `jev run`",
"threshold": 0.5,
"questions": {
"category": { "type": "choice", "instructions": "Which kind of request is this?",
"criteria": { "bug": "Crash or broken feature", "billing": "Payment or license problem", "other": "None of the above" } },
"urgency": { "type": "score", "instructions": "How soon must someone act?",
"criteria": ["can wait", "this week", "today", "now"] },
"needs_reply": { "type": "noul", "instructions": "The sender expects a personal reply",
"criteria": { "true": "Asks a question or waits for a decision", "false": "Notice or receipt only" } }
}
}criteriachoicenoul{name: description}noultruefalsescoretypeinstructionscriteriascorehttps://openrouter.ai/api/alpha/decisionsJEV_BASE_URLjev: API 错误 (HTTP n): …