Instale a NVIDIA no Kimi Code e Acabe com o Erro 400
TL;DR
- Testamos o shim do @CanalQb e o erro 400 do
prompt_cache_keydesapareceu em menos de 5 minutos de instalação. - O kit roda 100% local na porta 8878, sem expor nada na rede e sem guardar sua chave da NVIDIA em nenhum momento.
- Resultado prático: o modelo GLM-5.3 da NVIDIA passa a funcionar no Kimi Code com streaming, ferramentas e thinking completos.
Nota Técnica: Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
Um campo JSON invisível trava toda chamada do Kimi Code para a NVIDIA.
O erro aparece como 400 status code (no body) mesmo com a chave certa, o modelo certo e o config.toml validado pelo kimi doctor. A causa é um parâmetro que o Kimi manda sempre — e que a NVIDIA rejeita sempre.
Testamos, isolamos a causa exata e criamos um shim local que resolve isso sem tocar no binário do Kimi. Aqui no @CanalQb, validamos que o processo inteiro — da instalação ao primeiro "OK" respondido pelo modelo — leva menos tempo do que ler este parágrafo duas vezes.
[providers.nvidia]
# local shim strips prompt_cache_key (Kimi always sends it; NVIDIA NIM rejects it -> HTTP 400)
type = "openai"
base_url = "http://127.0.0.1:8878/v1"
api_key = "nvapi-37M3ADdBCi4gXaZKk_2PNNw0XqIpCJq4egqyjtfWldYZChYO..."
[models."nvidia/glm53"]
provider = "nvidia"
model = "z-ai/glm-5.3"
max_context_size = 262144
display_name = "GLM-5.3 NVIDIA"
capabilities = ["thinking"]
support_efforts = ["low", "high", "max"]
default_effort = "low"
off_effort = "none"
O que é o shim do Kimi Code para NVIDIA?
O shim é um mini-proxy local, escrito em Python, que fica entre o Kimi Code e o endpoint da NVIDIA. Ele intercepta cada requisição, remove o campo prompt_cache_key do JSON e repassa tudo o resto — autenticação, ferramentas, streaming — sem alterar nenhum outro comportamento do CLI.
E o melhor? Ele não modifica o binário do Kimi Code, não instala dependências além do Python padrão e não expõe nada na rede — escuta apenas em 127.0.0.1. Isso significa que você continua usando o Kimi normalmente, do jeito que já conhece, só que agora com o modelo z-ai/glm-5.3 hospedado na infraestrutura da NVIDIA funcionando de ponta a ponta.
Por que o Kimi Code retorna erro 400 com a NVIDIA?
O Kimi Code envia sempre o parâmetro prompt_cache_key — com o ID da sessão — em qualquer requisição para providers do tipo openai. Esse comportamento foi introduzido na versão 0.29.0 do CLI, e a NVIDIA (via NIM) simplesmente não reconhece esse campo e rejeita a chamada inteira.
HTTP 400
{"message":"Validation: Unsupported parameter(s): `prompt_cache_key`", ...}
Mas tem um porém: não existe opção de configuração, variável de ambiente ou plugin oficial para desativar esse envio — o código-fonte do Kimi (profileService.ts) fixa o cacheKey como o ID da sessão e injeta o campo em toda chamada, sem exceção. Ou seja: não é sua chave, não é o modelo, não é o max_tokens. É um campo que o Kimi manda e a NVIDIA recusa, ponto final.
Como o shim funciona por dentro?
Veja agora como o fluxo real de dados acontece entre os três lados envolvidos:
kimi.exe ──> http://127.0.0.1:8878/v1 (shim local)
│ remove apenas "prompt_cache_key" do JSON
│ repassa Authorization, tools, reasoning_effort, streaming SSE...
└──> https://integrate.api.nvidia.com/v1/chat/completions
Repare no detalhe: o shim só escuta em 127.0.0.1, nunca guarda sua chave da NVIDIA — apenas repassa o cabeçalho Authorization como recebeu — e não altera mais nada na requisição ou na resposta. Streaming e uso de ferramentas continuam funcionando exatamente como antes. Se já houver outra instância dele rodando na porta 8878, ele simplesmente fecha em silêncio, sem gerar conflito.
O que você precisa antes de instalar?
Antes de rodar qualquer comando, confira se o seu ambiente atende estes quatro pontos:
- Windows com Kimi Code na versão 2.0.x — confirme com
kimi --version. - Python 3.10 ou superior instalado, incluindo o
pythonw.exe— confirme compython --version. - Uma chave da NVIDIA no formato
nvapi-..., gerada gratuitamente em build.nvidia.com. - PowerShell — já vem instalado por padrão em qualquer Windows atual.
A chave da NVIDIA não acompanha o kit: cada pessoa gera a sua própria conta gratuita no portal oficial. O modelo usado neste guia é o z-ai/glm-5.3.
Como instalar o shim automaticamente no Windows?
Este é o caminho mais rápido e o que recomendamos para a maioria dos casos. São só dois passos até o shim estar rodando.
Passo 1 — Abra o PowerShell dentro da pasta do kit. Segure Shift, clique com o botão direito na pasta e escolha "Abrir janela do PowerShell aqui". Isso é necessário porque o script usa o caminho da pasta atual ($PSScriptRoot) para localizar os arquivos.
Passo 2 — Execute o instalador:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1
O parâmetro -ExecutionPolicy Bypass permite rodar o script sem alterar a política global do Windows, que por padrão bloqueia scripts baixados da internet. Nos bastidores, o instalador faz, nesta ordem: recria o arquivo workspaces.json (liberando handles presos por antivírus que causam erro EPERM), copia o nvidia_shim.py para a pasta do Kimi, coloca o atalho de auto-início na pasta Startup, ajusta o config.toml com o bloco do provider NVIDIA e, por fim, inicia o shim fazendo um health-check.
Se tudo correr bem, a saída mostra estas linhas, nesta ordem:
[ok] workspaces.json recriado (libera handles presos que causam EPERM no fs.watch)
[ok] shim copiado: C:\Users\<voce>\.kimi-code\proxy\nvidia_shim.py
[ok] auto-inicio: ...\Startup\kimi-nvidia-shim.cmd
[ok] config.toml criado com o bloco nvidia
[ok] shim respondendo em http://127.0.0.1:8878
Erro comum: se aparecer [erro] pythonw.exe nao encontrado, o Python não está no caminho padrão nem no PATH — instale em python.org marcando a opção "Add Python to PATH" e rode o instalador de novo.
Passo final — Abra C:\Users\<voce>\.kimi-code\config.toml no Bloco de Notas e troque o placeholder pela sua chave real:
[providers.nvidia]
api_key = "COLOQUE_SUA_CHAVE_NVIDIA_AQUI"
Como fazer a instalação manual, passo a passo?
Prefere entender e controlar cada arquivo manualmente? Siga esta sequência:
- Copie
nvidia_shim.pyparaC:\Users\<voce>\.kimi-code\proxy\— crie a pasta se ela ainda não existir. Sem esse arquivo nesse local, o atalho de auto-início não encontra o que executar. - Copie
kimi-nvidia-shim.cmdpara a pasta de Startup do Windows. Digiteshell:startupna barra de endereços do Explorer para chegar direto lá. - Adicione ao final do
config.tomlo conteúdo deconfig-snippet.toml, preenchendo oapi_keycom sua chave real. Opcionalmente, definadefault_model = "nvidia/glm53"no topo do arquivo. - Dê dois cliques em
kimi-nvidia-shim.cmd(ou reinicie o Windows) para o shim subir.
Como testar se a instalação funcionou?
Rode estes três comandos, sempre nesta ordem, para validar cada camada do processo:
kimi doctor # config valido, sem erros
kimi provider list # deve listar: nvidia type=openai models=1
kimi --model nvidia/glm53 -p "Responda somente OK" # deve responder "OK"
Se o terceiro comando responder OK, o kit está funcionando de ponta a ponta. No TUI do Kimi, o modelo aparece como GLM-5.3 NVIDIA, com o thinking ajustável entre low, high e max — e até desativável com off_effort = "none", já que a NVIDIA aceita os níveis none/minimal/low/medium/high/xhigh/max. Para uma checagem extra, rápida e opcional:
Invoke-WebRequest http://127.0.0.1:8878/health -UseBasicParsing # StatusCode 200
Como trocar a chave da NVIDIA depois de instalado?
Gere ou revogue chaves diretamente em build.nvidia.com. Depois, edite apenas o campo api_key dentro de ~\.kimi-code\config.toml — o shim não guarda nenhuma credencial, então nada mais precisa ser reiniciado ou reconfigurado. É literalmente trocar uma linha e continuar usando.
Quais são os erros mais comuns e como resolver?
| Sintoma | Causa provável | Solução |
|---|---|---|
connection refused / fetch failed | Shim não está rodando | Execute kimi-nvidia-shim.cmd e teste http://127.0.0.1:8878/health |
Volta o erro 400 status code (no body) | base_url apontando direto para a NVIDIA | Use base_url = "http://127.0.0.1:8878/v1" no provider nvidia |
401 / Unauthorized | Chave inválida ou revogada | Troque o api_key no config.toml |
| Shim não sobe (porta 8878 ocupada) | Outro programa usando a porta | Edite LISTEN_PORT em nvidia_shim.py e o base_url no config |
| Modelo não aparece na lista | Bloco [models."nvidia/glm53"] ausente | Confira o config-snippet.toml e rode kimi doctor |
EPERM ao abrir o Kimi | Antivírus travando o workspaces.json | Recrie o arquivo (o instalador já faz isso) ou libere exceção para a pasta .kimi-code |
Como remover o shim por completo?
powershell -NoProfile -ExecutionPolicy Bypass -File .\uninstall.ps1
Isso remove o auto-início, encerra o processo do shim e apaga o arquivo nvidia_shim.py da pasta do Kimi. O desinstalador não mexe no seu config.toml — se quiser voltar a apontar direto para a NVIDIA (e aceitar de volta o erro 400 até a Moonshot corrigir o envio do prompt_cache_key), basta remover a linha do base_url local.
Quais cuidados de segurança preciso ter ao usar o shim?
- Nenhuma chave acompanha o kit — cada pessoa usa a sua própria, salva apenas no
config.tomllocal. - Se sua chave já apareceu em algum print, chat ou repositório público, considere-a vazada e gere outra imediatamente no portal da NVIDIA.
- O shim escuta apenas em
127.0.0.1, não grava requisições em disco e todo o tráfego real vai criptografado (TLS) direto paraintegrate.api.nvidia.com.
Conformidade Global: As informações regulatórias e de segurança neste conteúdo refletem o cenário vigente no momento da publicação. Práticas de proteção de dados variam por jurisdição e estão em constante evolução. Consulte sempre as políticas oficiais da NVIDIA e da Moonshot AI e verifique atualizações no IAPP Global Privacy Directory. Este conteúdo não constitui aconselhamento jurídico.
Perguntas Frequentes
O shim funciona no Linux ou no Mac?
Preciso pagar pela chave da API da NVIDIA?
O shim guarda ou envia minha chave da NVIDIA para algum servidor?
O que acontece se a Moonshot corrigir o envio do prompt_cache_key?
Posso usar esse mesmo shim com outros modelos além do GLM-5.3?
É seguro deixar esse shim rodando em segundo plano no meu PC?
📚 Fontes e Referências
Gostou do kit? O código completo está aberto no repositório kimi-nvidia no GitHub. Acompanhe mais automações no @CanalQb no YouTube.