Kimi Code com DeepSeek V4 Flash: config.toml passo a passo
Leitura: ~9 min | Nível: Iniciante
TL;DR:
- O arquivo
~/.kimi-code/config.tomlaponta o Kimi Code para a FlatKey com 1 bloco de provider e 1 bloco de modelo — o template pronto está no passo 5. - Testei o fluxo completo: instalar o CLI, gerar a chave no console da FlatKey e validar com cURL, Node.js e Python — tudo em menos de 10 minutos.
- Recomendo começar com
deepseek-v4-flash(200k de contexto, raciocínio e tool use) e usarpermission_mode = "auto"só em ambiente controlado.
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. As chaves exibidas neste post são ilustrativas — substitua pela sua chave real.
A maioria erra o config.toml — a culpa não é do modelo
A maioria erra o config.toml — a culpa não é do modelo. O modelo DeepSeek V4 Flash funciona muito bem, mas 90% dos tutoriais por aí param no "copie e cole" e ignoram a parte que realmente importa: o arquivo de configuração. Quando o Kimi Code abre e responde "model not found" ou "provider inválido", o erro quase sempre está em três campos: o nome do provider, o base_url ou o alias no default_model.
Neste guia você sai do zero — sem conta paga, sem assinatura — e termina com o Kimi Code rodando o DeepSeek V4 Flash via FlatKey. E não para por aí: ao final você ainda leva a lista completa de modelos que a FlatKey expõe hoje, os testes em cURL, Node.js e Python, e um FAQ com as dúvidas que mais aparecem aqui no canal. O pulo do gato é entender o papel de cada bloco — o resto é copiar.
O que é o Kimi Code e por que usar o DeepSeek V4 Flash?
O Kimi Code é um agente de programação que roda direto no terminal, editando arquivos, executando comandos e respondendo com raciocínio próprio. Ele lê suas preferências de um arquivo TOML simples (~/.kimi-code/config.toml), onde você define qual provedor e qual modelo ele usa por padrão. A graça é que esse provedor não precisa ser o oficial — qualquer endpoint compatível com a API da OpenAI entra ali.
O DeepSeek V4 Flash entra nesse ponto: é um modelo rápido, com 200 mil tokens de contexto, suporte a raciocínio (thinking) e chamada de ferramentas (tool use) — ou seja, ideal para o Kimi Code, que depende justamente dessas duas capacidades para executar tarefas. Aqui no @CanalQb, validamos que a combinação entre o CLI leve e um modelo de baixa latência reduz o tempo de resposta em tarefas de refatoração comparado a modelos pesados rodando no mesmo endpoint.
Como instalar o Kimi Code CLI?
O Kimi Code é distribuído como pacote npm global, então o único pré-requisito é ter o Node.js instalado na sua máquina (Windows, macOS ou Linux). Com o Node pronto, a instalação é um único comando no terminal:
Depois de instalar, execute o comando kimi para abrir o agente interativo no terminal. Para atualizar o CLI mais tarde, rode kimi upgrade dentro da própria ferramenta ou repita o comando npm com @latest. Se o primeiro início estiver lento no macOS, é só o Gatekeeper verificando o binário — os próximos abrem normalmente. Fontes oficiais: Kimi Code Docs.
Como criar a conta e gerar a API key na FlatKey?
A FlatKey é o roteador que dá acesso a dezenas de modelos com uma única chave. Para começar, acesse o painel em console.flatkey.ai/dashboard/overview, crie sua conta e faça login. No painel, procure a seção de chaves de API (API Keys): clique em criar e copie a chave que começa com sk-. Guarde esse valor em um lugar seguro — ele é usado no config.toml e nos testes de API.
A base URL que o Kimi Code e seus scripts vão usar é https://router.flatkey.ai/v1. É ela que transforma qualquer cliente compatível com a OpenAI em uma porta de entrada para os modelos da FlatKey. Se a interface do painel mudar depois desta publicação, a regra é sempre a mesma: o link de acesso está no rodapé do próprio console, e a chave fica em API Keys.
Onde fica o config.toml e como ele funciona?
O Kimi Code cria o arquivo de configuração automaticamente na primeira execução, no diretório ~/.kimi-code/config.toml. No Windows, o caminho típico é C:\Users\SEU_USUARIO\.kimi-code\config.toml; no Linux e macOS, /home/SEU_USUARIO/.kimi-code/config.toml. Se preferir mover esse diretório, a variável KIMI_CODE_HOME define um novo local, mas o nome do arquivo continua sendo config.toml.
A estrutura é dividida em blocos: providers define quem responde as chamadas (endpoint e chave), models define os apelidos que você usa no dia a dia, e permission.rules controla o que o agente pode executar sem pedir confirmação. Uma dica que vale ouro: campos com ponto no nome precisam de aspas, como [models."flatkey_ai/deepseek-v4-flash"] — sem aspas, o TOML interpreta o ponto como separador de tabela e quebra a configuração.
Como configurar o config.toml para o DeepSeek V4 Flash?
Abra o config.toml em qualquer editor e substitua o conteúdo pelo template abaixo. Troque apenas a linha da chave de API pela chave que você copiou no painel da FlatKey:
default_model = "flatkey_ai/deepseek-v4-flash"
# Aprovacao automatica total: o agente decide e executa sem perguntar
default_permission_mode = "auto"
# Garante que novas sessoes nao iniciam em modo de planejamento
default_plan_mode = false
# Auto-approve all built-in tools (Bash, Write, Edit, etc.)
[[permission.rules]]
decision = "allow"
pattern = "*"
# Auto-approve all MCP-connected tools (if using Model Context Protocol)
[[permission.rules]]
decision = "allow"
pattern = "mcp__*__*"
[providers.flatkey_ai]
base_url = "https://router.flatkey.ai/v1"
type = "openai"
api_key = "sk-AVzo**********zYbf"
[models."flatkey_ai/deepseek-v4-flash"]
provider = "flatkey_ai"
model = "deepseek-v4-flash"
max_context_size = 200000
max_output_size = 64000
capabilities = [ "thinking", "tool_use" ]
display_name = "DeepSeek V4 Flash (b.ai)"
reasoning_key = "reasoning_content"
[thinking]
enabled = true
Lendo o arquivo de cima para baixo: default_model diz ao Kimi Code qual apelido usar por padrão (precisa existir no bloco models); default_permission_mode = "auto" faz o agente executar comandos sem pedir confirmação — ótimo para produtividade, mas use em ambiente controlado; default_plan_mode = false garante que novas sessões não abram no modo de planejamento. As duas regras permission.rules liberam as ferramentas nativas (Bash, Write, Edit…) e as conectadas via MCP. No bloco providers.flatkey_ai, o type = "openai" é o que permite usar um endpoint de terceiros com formato OpenAI — e é aí que a FlatKey encaixa perfeitamente.
No bloco do modelo, max_context_size = 200000 declara a janela de contexto, max_output_size limita a saída por requisição e capabilities avisa o agente que o modelo pensa e usa ferramentas. O reasoning_key aponta para o campo de raciocínio que a FlatKey devolve — sem ele, o histórico de pensamento pode ser ignorado. Depois de salvar, feche e reabra o Kimi Code (ou rode o comando de reload de configuração da versão atual do CLI) para carregar o novo arquivo.
Como testar a API da FlatKey com cURL?
Antes de usar o Kimi Code, vale confirmar que a chave e o endpoint estão respondendo. O teste mais rápido é com o cURL, direto no terminal — a FlatKey aceita o formato padrão da OpenAI, então a requisição é idêntica à de qualquer API compatível:
curl https://router.flatkey.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-AVzo**********zYbf" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Say hello in one sentence."}]}'
Se a chave estiver correta, a resposta chega em JSON com o campo choices[0].message.content preenchido. Um erro 401 indica chave inválida ou expirada; 404 costuma ser nome de modelo errado. Esse mesmo teste serve para qualquer modelo da lista que você vê mais abaixo — basta trocar o valor de model no corpo da requisição.
Como usar a FlatKey com Node.js?
Para chamar a API dentro de um projeto JavaScript, instale o SDK oficial da OpenAI — ele funciona com qualquer endpoint compatível quando você informa a baseURL — e configure o cliente apontando para a FlatKey:
npm install openai
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: 'sk-AVzo**********zYbf',
baseURL: 'https://router.flatkey.ai/v1',
})
const completion = await client.chat.completions.create({
model: 'gpt-4o-mini',
messages: [{ role: 'user', content: 'Say hello in one sentence.' }],
})
console.log(completion.choices[0].message.content)
Rode o arquivo com node arquivo.mjs (ou em um contexto que aceite import) e você verá a resposta do modelo no console. O mesmo padrão vale para o deepseek-v4-flash — mude o campo model e pronto.
Como usar a FlatKey com Python?
Em Python o fluxo é quase idêntico: instale o pacote openai, crie o cliente com a base_url da FlatKey e faça a chamada de chat. O SDK lida com a serialização e o retorno em objetos nativos:
pip install openai
from openai import OpenAI
client = OpenAI(
api_key="sk-AVzo**********zYbf",
base_url="https://router.flatkey.ai/v1",
)
completion = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Say hello in one sentence."}],
)
print(completion.choices[0].message.content)
Esse é o mesmo padrão que você encontra em qualquer projeto de automação aqui do canal: variável de ambiente para a chave, cliente configurado uma vez e chamadas reutilizáveis. Nada de reinventar a roda — o ecossistema OpenAI já resolve a compatibilidade.
Quais modelos estão disponíveis na FlatKey?
A FlatKey expõe mais de 100 modelos num único painel, separados por família. Abaixo está a lista completa capturada do seletor do console, pronta para você usar nos testes com cURL, Node.js, Python ou no config.toml:
apodex-1-0-deep-discover, apodex-1-0-deep-research, apodex-1-0-deep-solve,
apodex-1-1-deep-discover, apodex-1-1-deep-research, apodex-1-1-deep-solve,
apodex-1.1, apodex-1.1-mini, claude-fable-5.1, claude-fable-5, claude-fable-5-1,
claude-haiku-4-5-20251001, claude-opus-4-5, claude-opus-4-6, claude-opus-4-7,
claude-opus-4-8, claude-opus-5, claude-sonnet-4-5-20250929, claude-sonnet-4-6,
claude-sonnet-5, codex-auto-review, deepseek-v3.2-thinking, deepseek-v3.2,
deepseek-v3.1, deepseek-v3, deepseek-v4-flash, deepseek-v4-pro,
deepseek-v4-pro-0813, eleven_multilingual_v2, eleven_sound_v1, gemini-2.5-flash,
gemini-2.5-flash-image, gemini-2.5-flash-lite, gemini-2.5-pro,
gemini-3-flash-preview, gemini-3-pro-image, gemini-3.1-flash-image,
gemini-3.1-flash-lite, gemini-3.1-flash-lite-image, gemini-3.1-flash-lite-preview,
gemini-3.1-pro-preview, gemini-3.1-pro-preview-customtools, gemini-3.5-flash,
gemini-3.5-flash-lite, gemini-3.6-flash, gemini-3.7-flash, gemini-flash-latest,
gemini-flash-lite-latest, gemini-pro-latest, gemini-robotics-er-1.6-preview,
gemma-4-26b-a4b-it, gemma-4-31b-it, glm-4.7, glm-5, glm-5-turbo, glm-5.1,
glm-5.2, glm-5.3, glm-5.3-flash, gpt-4.1-mini, gpt-4o, gpt-4o-mini,
gpt-5-mini, gpt-5.4-nano, gpt-5.6-terra, gpt-5.4, gpt-5.4-mini, gpt-5.5,
gpt-5.6-luna, gpt-5.6-sol, gpt-5.5-openai-compact, gpt-5.3-codex-spark,
gpt-5.4-fk-cx, gpt-5.4-mini-fk-cx, gpt-5.5-fk-cx, gpt-5.6-luna-fk-cx,
gpt-5.6-luna-openai-compact, gpt-5.6-sol-fk-cx, gpt-5.6-sol-openai-compact,
gpt-5.6-terra-fk-cx, gpt-5.6-terra-openai-compact, gpt-image-2,
grok-imagine-image-pro, grok-imagine-video, grok-imagine-video-1.5,
grok-imagine-image, grok-imagine-image-quality, kimi-k2.5, kimi-k2.6, kimi-k3,
macaron-v1-tall, macaron-v1-venti, macaron-v1-coding-venti, MiniMax-H3,
minimax-m2, minimax-m2.5, minimax-m2.7, nano-banana-pro-preview,
qwen3.5-27b, qwen3.5-35b-a3b, qwen3.5-397b-a17b, qwen3.5-flash, qwen3.5-plus,
qwen3.6-max-preview, qwen3.6-plus, qwen3.7-max, qwen3.7-plus, qwen3.8-max,
qwen3.5-plus-2026-02-15, seedance-2.0-mini, seedance-2.0-fast, seedance-2.0-pro,
seedance-2.5, seedance-2.0, seedance2.0-pro, veo-3.1-fast-generate-preview,
veo-3.1-generate-preview
A lista inclui desde modelos de texto para chat e código (Claude, GPT, Gemini, DeepSeek, Qwen, GLM, Kimi) até modelos de geração de imagem e vídeo (gpt-image-2, seedance, veo, grok-imagine) e áudio (eleven). Para usar um deles no Kimi Code, crie um novo bloco [models."flatkey_ai/NOME_DO_MODELO"] apontando para o mesmo provider — o padrão é sempre o mesmo do template que você já configurou.
O que fazer se o Kimi Code não responder?
Quando o Kimi Code abre e a chamada falha, o problema quase sempre está em um destes pontos: chave com espaço extra ou caractere invisível ao colar; base_url sem a barra /v1 no final; alias do default_model diferente do nome do bloco em models; ou modelo com nome desatualizado no roteador. Confirme a chave no painel da FlatKey e valide a API com o cURL antes de voltar ao CLI — assim você isola se o problema é da chave ou da configuração.
Outra verificação rápida: a documentação oficial do Kimi Code detalha cada campo do config.toml, do providers ao thinking, em Configuration files — vale como referência sempre que o comportamento mudar entre versões. Nos bastidores do @CanalQb, esse é o primeiro link que abrimos em qualquer problema de configuração.
Perguntas Frequentes
Preciso de uma conta paga do Kimi para usar o DeepSeek V4 Flash?
A chave sk-AVzo**********zYbf mostrada no tutorial é a minha?
O que significa default_permission_mode = "auto" no config.toml?
Consigo trocar de modelo sem reescrever o config.toml inteiro?
A FlatKey aceita o SDK oficial da OpenAI?
O DeepSeek V4 Flash suporta thinking e tool use no Kimi Code?
Fontes e Referências
- Kimi Code Docs — Configuration files (config.toml)
- Kimi Code Docs — FAQ (instalação e upgrade)
- OpenAI Node.js SDK
- OpenAI Python SDK
- FlatKey Console — Dashboard e API Keys
Gostou? Acompanhe o @CanalQb no YouTube e confira mais automações e tutoriais práticos em canalqb.com.br.
Feito com Master Rules Claude v8.5