Jev no Claude Code: em que ponto do fluxo ele entra, antes, durante ou depois?

Resposta rápida

O Jev no Claude Code entra antes, como decisor, e nunca no lugar do modelo que executa o turno. Ele é o System One da TypeSafe AI: recebe um estado e perguntas tipadas (Choice, Score, Noul) e devolve resposta estruturada com confiança, sem gerar texto e sem escrever código. A própria documentação da TypeSafe diz que ele não substitui o LLM de agentes como Claude Code, Cursor ou Copilot: o padrão é o agente escrever código que chama o Jev pra decidir. Quem executa, edita arquivo e roda ferramenta continua sendo o Claude Code

Fala aí, beleza? Tem gente achando que o Jev chega pra substituir o modelo do Claude Code, e tem gente achando que ele senta na frente do turno interceptando tudo

Nenhuma das duas

O Jev é o modelo System One da TypeSafe AI, lançado em acesso antecipado limitado em 15 de setembro de 2026), junto com o anúncio de uma rodada seed de US$ 40 milhões liderada pela DCVC. A pergunta prática de quem vai integrar não é "ele é melhor que o Sonnet?", é outra: em que ponto da ordem das coisas ele encosta? Antes do prompt virar trabalho, durante a execução das ferramentas ou depois da resposta pronta?

Bora destrinchar isso

O que o Jev faz (e o que ele nunca faz) dentro de um fluxo de agente

O Jev recebe um estado e perguntas tipadas, e devolve respostas estruturadas

Só isso

Ele não gera texto, não escreve código, não mantém conversa e não roda loop de agente. Se você conhece a diferença entre um classificador e um chat, é mais ou menos por aí: um responde pergunta fechada, o outro conversa

São três tipos de pergunta, segundo a documentação de primitivas da TypeSafe:

  • Choice: escolhe uma opção de uma lista, com probabilidade por opção, aceitando até 255 opções
  • Score: devolve uma posição dentro de uma escala ordenada
  • Noul: devolve um valor de 0 a 1 pra uma afirmação do tipo sim ou não

E tem o detalhe que muda tudo no desenho da integração: a resposta vem acompanhada de confiança. É isso que permite ao SEU código decidir quando agir sozinho e quando escalar o caso ambíguo pra uma pessoa ou pra um modelo de raciocínio

A própria documentação sobre coding agents é explícita: o Jev não é substituto do LLM por trás de agentes como Claude Code, Cursor ou Copilot. O uso indicado é o agente escrever código que chama o Jev pra decidir

E por que ele cabe ANTES de um turno, e não como mais uma etapa pesada no meio? Preço de lista de US$ 0,042 por 1 milhão de tokens de entrada e US$ 0,00 por 1 milhão de tokens de saída, com tempo de resposta ponta a ponta informado pela própria TypeSafe entre 70 e 500 milissegundos, a maioria em torno de 100 ms, medido na costa oeste dos EUA

Esse número de latência é do fornecedor, não é reprodução independente, e não existe medição publicada de Brasil. Fica o aviso

Os pontos do fluxo do Claude Code onde código externo pode rodar

Antes de encaixar o Jev, você precisa saber quais são as gavetas

A documentação oficial de hooks da Anthropic define eventos onde código externo roda no Claude Code, e entre eles estão:

  • UserPromptSubmit: no envio do prompt
  • PreToolUse: antes da execução da ferramenta
  • PostToolUse: depois da execução da ferramenta
  • Stop

E aqui vem a parte que quase ninguém repara: o poder de bloqueio muda conforme o evento. PreToolUse bloqueia a chamada da ferramenta, UserPromptSubmit rejeita o prompt

Ou seja, tem ponto onde uma decisão muda o rumo, e tem ponto onde ela basicamente observa e registra

Agora o ponto que resolve metade da confusão: o Jev não é um hook

Hook é vocabulário do Claude Code. O Jev é consultado POR código que roda nesses pontos. Um é o lugar, o outro é o consultor que você liga do lugar

Essa pergunta de "quem entra em que momento" não é exclusiva daqui, ela se repete em toda ferramenta nova que aparece encostada num fluxo que já existe, como na discussão sobre onde o Claude Design entra quando você já usa outra ferramenta de interface

Três formas de plugar o Jev no Claude Code e onde cada uma entra

Hoje existem três caminhos, com maturidades BEM diferentes:

Forma de plugar Onde entra no fluxo Quem mantém Como instala Estabilidade
Agent skill oficial da TypeSafe Dentro do turno, como contexto: ensina o agente a chamar o Jev, não intercepta o turno TypeSafe AI claude plugin marketplace add typesafe-ai/skills e depois claude plugin install typesafe@typesafe-ai Integração oficial documentada
Mod jev-model-router Antes do turno: escolhe modelo e esforço de raciocínio da tarefa Comunidade, dentro do repositório claude-code-templates mantido por davila7 (Daniel Ávila) npx claude-code-templates@latest --mod productivity/jev-model-router Depende de function hooks, em acesso antecipado atrás de flag desligada por padrão
Servidores jev-mcp de terceiros Varia conforme a implementação Autores independentes (tphakala, BYK, rahulrajaram, entre outros) Varia por implementação Sem versão canônica e sem servidor MCP oficial da TypeSafe

A skill oficial: contexto, não interceptação

A agent skill da TypeSafe dá ao agente contexto completo sobre a API: os três tipos de pergunta, padrões de arquitetura e boas práticas pra estruturar avaliações

Ela ensina o agente a chamar o Jev

Ela NÃO entra no meio do turno pra decidir nada por você

claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ai

Se o seu agente não é o Claude Code, a mesma skill tem outro caminho:

npx skills add typesafe-ai/skills --skill typesafe-ai

Depois é só selecionar o agente

O mod da comunidade: decisão antes do turno

O jev-model-router é um mod da comunidade, dentro do repositório claude-code-templates mantido por davila7 (Daniel Ávila), e isso importa: ele não é produto da TypeSafe nem da Anthropic

O que ele faz é roteamento por turno: entra estado não estruturado, sai uma escolha tipada com distribuição de probabilidade, definindo modelo e esforço de raciocínio da tarefa antes do trabalho começar

Passo a passo segundo o README do próprio projeto:

  1. Confira a versão do Claude Code. O mod exige 2.1.259 ou superior. Erro comum deste passo: rodar a instalação numa versão antiga e ficar caçando bug que não existe
  1. Instale o mod no projeto:
npx claude-code-templates@latest --mod productivity/jev-model-router
  1. Com a flag --mod, ele é gravado em .claude/skills/jev-model-router/ no projeto e carregado como jev-model-router@skills-dir em projeto confiável
  1. Habilite a variável CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1. Erro comum deste passo: esquecer a variável e achar que o roteamento simplesmente não funciona. Pra sessão única dá pra rodar assim:
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 claude --plugin-dir .claude/skills/jev-model-router

Tome cuidado: o próprio README avisa que a API pode mudar entre releases

Antes, durante e depois na prática: onde o Jev realmente encosta

Antes do prompt virar trabalho: escolher a skill certa

O cookbook oficial de sugestão de skill é o exemplo mais claro de "antes"

São duas requisições ao Jev por turno, ambas ANTES de decidir qual skill carregar

A primeira ranqueia o catálogo e responde se aquele turno precisa de skill. A segunda re-lê os três primeiros colocados e pode rejeitar todos

A execução publicada rodou sobre o catálogo Hermes da Nous Research, com 182 skills, usando jev-1.12 e claude-haiku-4-5-20251001, renderizada em 2026-07-31, e reduz carregamentos incorretos de skill em mais da metade

Repara no desenho: o Jev não escreveu nada, não executou nada, só respondeu pergunta fechada e o fluxo seguiu

Antes do turno: escolher o motor

É o caso do jev-model-router, que decide modelo e esforço a partir de estado não estruturado

Mesma lógica, camada diferente: em vez de escolher o que carregar, escolhe com o que rodar

É o mesmo tipo de raciocínio de ordem que aparece quando você define em que ponto o upscale entra num pipeline de geração de vídeo: a decisão vem antes, o trabalho pesado vem depois

Durante a execução das ferramentas: o ponto existe, o exemplo pronto não

Aqui vale honestidade: os dois casos de "antes" têm cookbook e mod publicados, o "durante" não tem

O ponto do fluxo existe e está documentado pela Anthropic: PreToolUse roda antes da execução da ferramenta e bloqueia a chamada, PostToolUse roda depois dela

O desenho possível é direto: o SEU código roda nesse ponto, manda o estado pro Jev com uma pergunta fechada (um Noul do tipo "essa chamada é segura?", por exemplo) e usa a confiança da resposta pra deixar seguir ou mandar pra revisão

Só que isso é código seu, escrito por você. Não existe receita oficial da TypeSafe pra esse ponto, diferente do cookbook de skill e do mod de roteamento

Tome cuidado com um detalhe de conta: o que é barato quando roda uma vez antes do turno vira uma chamada a cada ferramenta usada, e aí o volume é outro

Depois: a confiança é quem manda o caso pra revisão

Aqui o "depois" não é do Claude Code, é do seu código

Como a resposta do Jev vem com confiança, é o seu limiar que decide se aquilo segue automático ou vira revisão humana (ou vai pra um modelo de raciocínio)

E tem uma recomendação oficial que existe exatamente por causa disso: concentre as perguntas e as constantes de limiar (thresholds) num único arquivo de código, por serem o ponto mais importante pra revisão humana

É o arquivo que o time inteiro vai abrir quando alguém perguntar "por que ele decidiu isso?"

Quem manda em quê: o Jev decide, o Claude Code executa

Resposta curta pra dúvida de hierarquia: o Jev nunca assume o turno

Ele devolve uma escolha tipada e o código do agente (ou o mod) age com base nela. Quem lê arquivo, edita código, roda comando e responde continua sendo o Claude Code

Agora a parte honesta sobre maturidade, porque tem gente montando arquitetura em cima de coisa que ainda balança

As function hooks, que são a base do jev-model-router, estão em acesso antecipado atrás de flag desligada por padrão e não constam na documentação pública oficial da Anthropic. Some isso ao aviso do README de que a API pode mudar entre releases e você tem o retrato: dá pra usar, mas não é release estável

O lado bom é que o mod falha de forma educada. Ainda segundo o README do próprio projeto, ele alcança o Jev pela API da própria TypeSafe ou pelo Vercel AI Gateway; sem chave configurada, cai no classificador interno do próprio engine, e se a chamada falha, a requisição roda intacta

Ou seja, o turno não quebra por causa do decisor

E o Jev também vive fora da API da TypeSafe: ele está disponível no Vercel AI Gateway e no OpenRouter

O que a prática com Claude Code ensina antes de plugar qualquer decisor

Antes de colocar QUALQUER camada de decisão antes do turno, vale entender como o Claude Code é conduzido no dia a dia

No vídeo abaixo eu mostro os hooks, e uma coisa que faço questão de deixar clara ali é que eles funcionam em pontos específicos da execução, não a qualquer momento aleatório

Eu configuro eles dentro do arquivo de settings local, logo depois da chave permissions, e passo pelos momentos em que um hook pode entrar: antes da ferramenta ser executada, depois da ferramenta ser executada, quando o Claude notifica algo e quando ele termina uma tarefa

O exemplo que monto é bem pé no chão: um hook que roda depois de cada modificação de código feita pelo Claude, chamando o ESLint pra verificar falhas no JavaScript

Deixo configurado e mostro em execução assim que uma nova modificação acontece no projeto

Por que isso conecta com o Jev? Porque a lição é a mesma: saber ENCAIXAR a coisa no ponto certo da execução é o que deixa o projeto mais robusto. Um decisor antes do turno ajuda quando o fluxo e a revisão estão claros, e atrapalha quando você só empilha camada em cima de um processo que já tá bagunçado

Se você ainda não tem intimidade com o turno do Claude Code, comece por aí antes de adicionar mais uma peça no meio

Conclusão

Resumindo em uma frase: o Jev entra ANTES, decidindo, e o Claude Code continua executando

O próximo passo concreto, se você quer testar sem se enrolar:

  1. Comece pela agent skill oficial da TypeSafe, pro agente aprender a chamar a API do jeito certo
  2. Deixe as perguntas e os thresholds concentrados num arquivo único, que é o ponto de revisão humana
  3. Só depois avalie o mod da comunidade, ciente de que ele depende de recurso em preview atrás de flag

Quem cobre tema novo cedo aprende antes, mas também apanha antes… vale lembrar disso quando a API mudar de uma release pra outra 😀

Até o próximo post!

Perguntas frequentes

Jev no Claude Code substitui o Sonnet ou outro modelo do agente?

Não. A própria documentação da TypeSafe é explícita: o Jev não é substituto do LLM por trás de agentes como Claude Code, Cursor ou Copilot. O uso indicado é o agente escrever código que chama o Jev pra decidir, e os dois convivem no mesmo fluxo.

Dá pra usar o Jev no Claude Code sem instalar nenhum mod da comunidade?

Dá sim. A integração oficial é a agent skill da TypeSafe, instalada com claude plugin marketplace add typesafe-ai/skills e depois claude plugin install typesafe@typesafe-ai. Ela dá contexto ao agente sobre a API do Jev, mas não intercepta o turno como o mod da comunidade faz.

O jev-model-router funciona em qualquer versão do Claude Code?

Não. O README do próprio projeto exige Claude Code 2.1.259 ou superior, além da variável CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 ativa. Sem esses dois requisitos o mod não roda, e o próprio README avisa que a API pode mudar entre releases.

Existe servidor MCP oficial do Jev pra usar no Claude Code?

Não. A TypeSafe não publica servidor MCP próprio na documentação oficial. Os servidores jev-mcp disponíveis, como tphakala/jev-mcp, BYK/jev-mcp e rahulrajaram/jev-mcp, são implementações independentes de terceiros, sem versão canônica.

Quanto custa rodar o Jev integrado ao Claude Code?

O preço de lista do Jev é US$ 0,042 por 1 milhão de tokens de entrada e US$ 0,00 por 1 milhão de tokens de saída. É esse custo baixo, somado à latência de 70 a 500 milissegundos informada pela TypeSafe, que sustenta colocar o Jev antes de um turno sem pesar o fluxo.

O que acontece se a chamada ao Jev falhar dentro do jev-model-router?

Segundo o README do próprio projeto, se a chamada ao Jev falha a requisição roda intacta, ou seja, o turno do Claude Code não quebra. Ainda pelo README, o router alcança o Jev pela API da TypeSafe ou pelo Vercel AI Gateway, e sem chave configurada cai no classificador interno do próprio engine.




Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Formações

Formação Claude Code

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 48min

Blog | Mais populares