jev-use
Entrega as etapas não relacionadas à escrita de um agente de codificação — qual elemento clicar, se o build passou, se este comando é seguro — ao Jev, um modelo de julgamento, e devolve ao LLM quando necessário.
Documentação
jev-use
Inglês | 简体中文
A melhor maneira de Claude Code, Codex e pi trabalharem com Jev: entregue as tarefas que não precisam de saída de texto ao Jev — passos mais rápidos, menos tokens, tarefas concluídas mais cedo e melhor.
Isso torna o LLM e o Jev verdadeiros colaboradores: quando o conteúdo precisa ser escrito, o LLM assume; quando um passo só precisa de uma decisão rápida, o Jev executa.
Demonstrações — execuções reais, velocidade 1×
Tarefa de direções: Jev clica, o LLM digita — 10 decisões (p50 274 ms) · 4 escritas; Jev rejeita uma rota errada, o LLM reescreve![]() | Compactação de contexto — 200 mensagens julgadas em 7 chamadas, um parágrafo do LLM substitui a pilha descartada; recall 3/3![]() |
Pong: velocidade da bola = latência de decisão — 86 decisões do Jev em 20 s vs 6 (haiku) e 3 (gemini) chamadas da maneira usual; restrinja ambos com enum e a diferença é de 3×![]() | Controle cada comando de shell — os perigosos são negados em ~230 ms com um motivo, zero tokens do LLM![]() |
Cada demonstração é um script reexecutável em bench/examples/; todos os números, metodologia, variância e ressalvas: bench/RESULTS.md · medições de terceiros: docs/evidence.md.
Instalação
npx -y jev-use install # wires Claude Code, Codex, and pi — whichever it finds
Defina uma chave no ambiente em que seu agente executa (JEV_BACKEND=mock para
uma execução de teste sem chave):
| Provedor | Variável de ambiente |
|---|---|
| TypeSafe direto | TYPESAFE_API_KEY |
| OpenRouter | OPENROUTER_API_KEY |
| Vercel AI Gateway | AI_GATEWAY_API_KEY |
npx -y jev-use doctor verifica a conexão. O estado julgado vai para o
provedor que você configurar; JEV_BACKEND=mock permanece local. Formato de plugin com
a habilidade de roteamento e o portão PreToolUse:
harness/claude-code ·
harness/codex.
Uso como biblioteca
npm i jev-use — zero dependências de runtime no caminho de julgamento:
import { Jev, check, pick, rate } from "jev-use";
const jev = new Jev();
const { answers } = await jev.judge(state, {
next: pick("Next action?", { merge: "all green", rerun: "looks flaky", hold: "needs attention" }),
risk: rate("How risky?", ["routine", "worth a look", "incident"]),
passed: check("Did the run fully succeed?"),
});
// answers.next → { answer: "merge", confidence: 0.93, confidenceFrom: "reported", escalate: false }
Qualquer coisa que o Jev não possa ou não deva decidir retorna com escalate: true
e um motivo tipado. Ferramentas, formato de veredito, contrato de escalonamento, CLI:
docs/reference.md.
Pequeno o suficiente para ler
| Arquivo | Função |
|---|---|
| src/protocol.ts | Perguntas (check/pick/rate), vereditos, motivos de escalonamento |
| src/dispatch.ts | Roteamento pré-chamada: o que nunca chega ao Jev |
| src/judge.ts | tela → backend → devolver o que não tem certeza; gate |
| src/jev.ts | O cliente Jev sobre esse mecanismo |
| src/backends/ | TypeSafe, OpenRouter, Vercel, adaptadores mock |
| src/server.ts | As duas ferramentas MCP |
| src/cli.ts | install, serve, hook gate, doctor |
| skills/jev-use/SKILL.md | As regras de roteamento que o agente segue |
Desenvolvimento
$ npm run typecheck && npm test # unit tests incl. per-provider wire fixtures
$ npm run smoke # real MCP client ↔ built CLI over stdio
$ node bench/run.mjs # micro-benchmarks, your key and region
Substancialmente escrito com Claude Code (assistido por IA).
MIT © shitianfang



