Documentação
Mistral Vibe CLI
O Vibe CLI se conecta a um endpoint de terceiros por meio de um bloco TOML editado manualmente, e a própria documentação da Mistral usa um gateway como exemplo prático. São cinco linhas em [[providers]] para que o agente execute modelos Claude ou GPT usando sua chave.
Um bloco [[providers]] de cinco linhas em .vibe/config.toml — api_base, api_key_env_var, api_style — aponta o Vibe CLI para a Kunavo, com a chave em uma variável de ambiente em vez do arquivo.
# ./.vibe/config.toml (project) or ~/.vibe/config.toml (user).
# "Project-level configuration takes precedence over user-level
# configuration", and the project file loads only in a trusted folder.
active_model = "sonnet-kunavo"
[[providers]]
name = "kunavo"
api_base = "https://api.kunavo.com/v1"
api_key_env_var = "KUNAVO_API_KEY"
api_style = "openai"
backend = "generic"
[[models]]
name = "claude-sonnet-5"
provider = "kunavo"
alias = "sonnet-kunavo"
# Optional, and documented on the api-keys-profiles page:
# temperature sampling temperature
# input_price indicative per-input cost, fed to --max-price
# output_price indicative per-output cost, fed to --max-price
# Take the two prices from the table further down this page if you want
# --max-price to mean anything.
# The key never goes in config.toml. api_key_env_var names the variable:
# export KUNAVO_API_KEY="sk-kn-..."api_base preserva o /v1. A documentação de referência da Mistral descreve o campo apenas como “URL base da API do provedor” e não define nenhuma regra para o sufixo. O que esclarece a questão é o valor usado nos exemplos práticos das duas páginas de documentação: api_base = "https://openrouter.ai/api/v1". O motivo aparece no código-fonte da versão v2.25.5: o adaptador openai acrescenta /chat/completions a api_base e nada mais, e o provedor Mistral integrado à CLI usa uma URL base /v1 pelo mesmo motivo. Se você remover o sufixo, fará a solicitação a /chat/completions na raiz, o que resulta em 404, não em um erro de autenticação.curl abaixo é o que você pode verificar em dez segundos; tudo o que o cliente faz depois disso depende do Vibe.temperature em todas as solicitações, enquanto vários IDs Claude — entre eles claude-sonnet-5 e claude-opus-5 — retornam 400 no sistema upstream para o conjunto completo dos três parâmetros de amostragem. O Kunavo remove esses parâmetros antes de encaminhar as solicitações, exatamente para os IDs que os rejeitam. Assim, o campo incluído incondicionalmente pelo cliente não causa uma rejeição definitiva. Portanto, a chave temperature em uma configuração predefinida [[models]] não causa problemas aqui e também não tem efeito nesses IDs.sk-kn-) e adicione crédito a partir de $10 — as chamadas são pagas com esse saldo, e chamadas malsucedidas não são cobradas. O painel então abre na configuração de Mistral Vibe CLI.Passo a passo
- Crie uma chave em
/app/keyse copie-a — ela é exibida uma única vez. - Abra
~/.vibe/config.toml(ou crie./.vibe/config.tomlno repositório em que deseja aplicar a configuração) e cole o bloco acima. Não há um fluxo de configuração de provedor para percorrer: a Mistral documenta esse arquivo como editável manualmente, e/confige/modelapenas alternam entre configurações predefinidas já existentes. - Exporte a variável definida em
api_key_env_var—export KUNAVO_API_KEY="sk-kn-...". A página de credenciais da Mistral identifica~/.vibe/.envcomo o arquivo carregado pela CLI na inicialização para obter credenciais, e o exemplo da própria Mistral com um provedor de terceiros usa o comando de shellexportpara a chave que não é da Mistral. - Adicione uma configuração predefinida
[[models]]para cada ID desejado, cada uma com seu próprioalias, e depois definaactive_modelcomo um desses aliases. O alias é local: é o que aparece em/model, enquantonameé o ID enviado ao endpoint. - Execute
vibeem uma pasta confiável e dê ao agente algo que altere um arquivo, não uma saudação. Um primeiro turno que lê e edita um arquivo exercita as chamadas de ferramentas, onde um provedor mal configurado costuma revelar o problema.
Verificado em página de configuração do Mistral Vibe Code CLI em 21 de setembro de 2026. As configurações de terceiros podem mudar; se o nome de um campo aqui já não corresponder ao que você vê, aquela página é a autoridade, não esta.
Verifique antes de depurar o cliente
Uma solicitação determina se a falha está no endpoint, na chave ou no arquivo de configuração. Se isto retornar JSON, a mesma URL base e a mesma chave funcionarão em Mistral Vibe CLI.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."Qual ID de modelo inserir no campo
Todo modelo de texto pode ser acessado como um ID de modelo — a lista atual está em GET /v1/models, e o catálogo com preços está na página de modelos. As tarifas são em USD por 1 milhão de tokens, entrada / saída.
| ID do modelo | Entrada / saída da Kunavo | Onde se encaixa em Mistral Vibe CLI |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | o alias funcional — aquele para o qual active_model aponta na maioria dos dias |
claude-opus-5 | $3.50 / $17.50 | uma segunda configuração predefinida para o modo de planejamento, em que um plano errado é o que mais custa |
claude-haiku-4-5 | $0.70 / $3.50 | turnos baratos e triagem rápida de arquivos, em um alias próprio para selecionar |
gpt-5-6-sol | $2.00 / $12.00 | outra família usando o mesmo bloco de provedor e a mesma chave |
Nem todo o seu tráfego passa por este provedor
Esta é uma particularidade que um bloco de configuração não revela, e que diz respeito ao Vibe, não ao Kunavo. Na versão v2.25.5, a CLI encaminha conclusões de “utilitários” em segundo plano — chamadas pequenas que dão nomes a conversas e worktrees — para o modelo próprio da Mistral mistral-vibe-cli-fast sempre que um provedor Mistral está disponível. Os valores padrão distribuídos sempre configuram um, mesmo quando o modelo ativo da sessão é o seu. O código-fonte deixa explícitos tanto essa preferência quanto o fallback: quando nenhum provedor Mistral está disponível, a chamada de utilitário usa o modelo ativo da sessão.
Portanto, para que todas as solicitações da sessão usem o provedor configurado, uma destas condições precisa ser atendida:
MISTRAL_API_KEYnão está definido, então as credenciais do modelo rápido não são resolvidas e a chamada de utilitário usa o fallback; ou- o alias do modelo rápido é excluído por meio de
allowed_models, o que produz o mesmo efeito pela lista de permissões, em vez de pela chave.
O classificador Smart Approve vai além: a entrada correspondente no changelog da versão 2.25.1 informa que ele usa o modelo rápido da Mistral independentemente do modelo ativo da sessão. Portanto, na prática, uma sessão que use apenas o Kunavo precisa funcionar no modo accept-edits ou plan, e não no Smart Approve. Nada disso impede a configuração acima; significa apenas que o bloco do provedor diz respeito aos turnos do seu modelo, não a cada solicitação enviada pelo binário.
Os outros valores de api_style
A documentação apresenta um valor para api_style e o descreve como exemplo: "openai". O código-fonte da versão v2.25.5 inclui outros quatro — "anthropic", "openai-responses", "reasoning" e "vertex-anthropic" — em um dicionário simples, sem validação. Por isso, um erro de digitação só aparece no momento da solicitação, não quando o arquivo é carregado. Considere esses valores verificados no código-fonte, mas não documentados. Se experimentar o valor Anthropic, atente para uma particularidade: o endpoint do adaptador é /v1/messages. Portanto, api_base deve ser apenas a origem, https://api.kunavo.com, sem /v1 — o oposto do bloco acima. O Kunavo responde a /v1/messages para IDs que começam com claude-. Esta página usa o estilo openai porque é o documentado pela Mistral.
Perguntas frequentes
Como adiciono um provedor personalizado ao Mistral Vibe CLI?
Manualmente, em config.toml — não há uma interface para adicionar provedores. A página de configuração da Mistral documenta ./.vibe/config.toml no diretório de trabalho e ~/.vibe/config.toml no diretório pessoal, sendo que o arquivo do projeto tem precedência. O exemplo completo apresenta uma tabela [[providers]] com name, api_base, api_key_env_var, api_style e backend, além de uma tabela [[models]] com name, provider e alias, e um active_model que aponta para esse alias. A chave em si nunca fica no arquivo: api_key_env_var indica a variável de ambiente que a contém.
O api_base do Vibe CLI precisa terminar em /v1?
Para api_style “openai”, sim. A referência de configuração da Mistral descreve api_base apenas como a URL base da API do provedor e não estabelece nenhuma regra sobre o sufixo, mas o exemplo completo em ambas as páginas usa um valor terminado em /v1, e o código-fonte da v2.25.5 explica o motivo: o adaptador no estilo OpenAI acrescenta /chat/completions a api_base e nada mais, e o provedor Mistral integrado ao próprio CLI usa por padrão uma base /v1. Portanto, para o Kunavo, o valor é https://api.kunavo.com/v1. Omitir o sufixo resulta em 404, não em falha de autenticação. O estilo “anthropic”, que não é documentado, é o caso oposto — seu endpoint é /v1/messages, então api_base não deve conter /v1.
O Mistral Vibe CLI consegue executar modelos Claude?
Sim, por meio de uma predefinição de provedor, e não de uma opção. api_style identifica o protocolo de comunicação, não o fornecedor, e o campo name da predefinição do modelo é enviado ao endpoint exatamente como foi escrito; portanto, um ID Claude é resolvido no endpoint configurado, e não dentro do CLI. A própria documentação da Mistral demonstra esse padrão com um gateway de terceiros, o que faz dele um caminho documentado, e não uma solução alternativa.
Por que o Vibe CLI ainda chama a Mistral depois que configuro meu próprio provedor?
Porque as conclusões utilitárias em segundo plano são roteadas separadamente. Na v2.25.5, sempre que um provedor Mistral está disponível, o CLI prioriza o modelo próprio da Mistral, mistral-vibe-cli-fast, para pequenas chamadas em segundo plano — como nomear conversas e worktrees. Os padrões fornecidos sempre configuram um provedor Mistral, mesmo quando o modelo ativo da sua sessão é outro. O CLI recorre ao modelo ativo quando nenhum provedor Mistral está disponível; na prática, isso significa que MISTRAL_API_KEY não está definida ou que esse alias foi excluído por meio de allowed_models. O classificador Smart Approve é ainda mais restrito: o changelog diz que ele é executado no modelo rápido da Mistral, independentemente do modelo ativo da sessão.
O Kunavo testou o Mistral Vibe CLI?
Não. O que foi verificado em 21 de setembro de 2026 foi a documentação da própria Mistral — os nomes dos campos, sua ordem e a questão do /v1 foram extraídos dela, e o raciocínio sobre a URL base foi confirmado com o código-fonte da v2.25.5 do pacote mistral-vibe. O Kunavo não executou uma sessão do Vibe contra seu endpoint e não faz afirmações sobre streaming, ciclos de chamadas de ferramentas ou o comportamento do cliente durante uma tarefa longa. É possível verificar separadamente o endpoint e a chave com o comando curl nesta página; o restante depende de você e do cliente.
De onde o Vibe CLI lê a chave de API?
Da variável de ambiente indicada em api_key_env_var — no bloco de provedor do Kunavo, seja qual for o nome que você deu a ela, por exemplo, KUNAVO_API_KEY. A página de credenciais da Mistral documenta três fontes, nesta ordem de precedência, para a própria chave: o fluxo de configuração interativo, que grava em ~/.vibe/.env; uma variável de ambiente exportada, que tem precedência sobre esse arquivo; e a edição direta de ~/.vibe/.env, carregado pelo CLI na inicialização. O exemplo para terceiros usa uma exportação no shell. A mesma página observa que .env serve apenas para credenciais e que a configuração geral deve ficar em config.toml.