Aviso: configuração documentada pela DeepSeek, mas não oficialmente suportada pela Anthropic. Se quebrar, nenhum dos dois suportes vai te atender. A CLI é gratuita; os tokens da DeepSeek são pagos.
- Node.js 18+
node --versionSe não tiver, no Mac com Homebrew:
brew install node- API Key da DeepSeek — gere em https://platform.deepseek.com/api_keys e coloque crédito na conta (sem saldo, a API retorna erro de
insufficient balance).
npm install -g @anthropic-ai/claude-code
claude --versionSe aparecer o número da versão, está instalado.
Se você já tem Claude Code instalado e logado na Anthropic, pule pro passo 3 — mas leia o passo 6, porque a sessão antiga pode ganhar das variáveis de ambiente.
Teste primeiro na sessão atual do terminal (não persiste, é o jeito seguro de validar):
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="sk-SUA_KEY_DA_DEEPSEEK"
export ANTHROPIC_API_KEY="sk-SUA_KEY_DA_DEEPSEEK"
export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_EFFORT_LEVEL="max"
export CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1| Variável | Pra que serve |
|---|---|
ANTHROPIC_BASE_URL |
Redireciona a CLI pro endpoint Anthropic-compatible da DeepSeek |
ANTHROPIC_AUTH_TOKEN + ANTHROPIC_API_KEY |
Algumas versões da CLI checam uma, outras checam as duas — defina ambas |
ANTHROPIC_MODEL |
Modelo padrão. O sufixo [1m] é a variante de contexto de 1M tokens |
..._HAIKU_MODEL / SUBAGENT_MODEL |
Tarefas leves e subagentes vão pro flash, que é bem mais barato |
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK |
Evita a CLI cair num caminho non-streaming que conflita com o endpoint da DeepSeek |
IDs de modelo: deepseek-chat e deepseek-reasoner foram descontinuados em julho de 2026. Use deepseek-v4-pro (raciocínio pesado) e deepseek-v4-flash (tarefas do dia a dia).
Sobre as aspas nos [1m]: zsh não faz glob no lado direito de uma atribuição, então funcionaria sem aspas — mas mantenha aspas pra não ter surpresa em scripts.
cd ~/caminho/do/HelloTeloAI
claudeDentro da sessão, confirme a rota:
/status
Deve mostrar o base URL da DeepSeek. Se mostrar api.anthropic.com, vá pro passo 6.
O erro comum é jogar tudo no ~/.zshrc e nunca mais conseguir usar Claude Code com os modelos da Anthropic. Melhor criar um comando separado.
Adicione no fim do ~/.zshrc:
# Claude Code rodando no DeepSeek — invoque com: ccds
ccds() {
ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" \
ANTHROPIC_AUTH_TOKEN="$DEEPSEEK_API_KEY" \
ANTHROPIC_API_KEY="$DEEPSEEK_API_KEY" \
ANTHROPIC_MODEL="deepseek-v4-pro[1m]" \
ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]" \
ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]" \
ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash" \
CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash" \
CLAUDE_CODE_EFFORT_LEVEL="max" \
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1 \
claude "$@"
}E guarde a key fora do arquivo versionado. Opção simples:
echo 'export DEEPSEEK_API_KEY="sk-SUA_KEY"' >> ~/.zshenv
chmod 600 ~/.zshenvOpção mais segura, usando o Keychain do macOS:
# guardar uma vez
security add-generic-password -a "$USER" -s deepseek-api -w "sk-SUA_KEY"E no .zshrc, no lugar do export:
export DEEPSEEK_API_KEY="$(security find-generic-password -a "$USER" -s deepseek-api -w)"Recarregue:
source ~/.zshrcAgora claude = Anthropic, ccds = DeepSeek.
/status mostra a Anthropic, não a DeepSeek
Sessão antiga autenticada tem precedência. Rode claude e use /logout, ou apague a credencial salva:
# inspecione antes de apagar
cat ~/.claude.json | head -40No macOS a credencial também pode estar no Keychain, como item Claude Code-credentials.
Erro 401 / authentication_error
Key errada, saldo zerado, ou você definiu só uma das duas variáveis de key. Teste a key direto:
curl https://api.deepseek.com/anthropic/v1/messages \
-H "x-api-key: $DEEPSEEK_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"deepseek-v4-pro[1m]","max_tokens":32,"messages":[{"role":"user","content":"ping"}]}'model_not_found
Você usou um ID legado (deepseek-chat, deepseek-reasoner).
Requests travando ou timeout
Confirme o CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1. Se estiver atrás de proxy, defina HTTPS_PROXY antes das outras variáveis.
Nunca misture rotas. Base URL da OpenRouter com token da DeepSeek (ou vice-versa) é a causa nº1 de debug perdido. Escolha um dono da rota e fique nele.
Funciona: CLAUDE.md, slash commands, hooks, servidores MCP (são client-side — seu UE-MCP continua funcionando), subagentes, web search (a DeepSeek implementa o tool nativamente, mas cobra tokens extras pelo resumo dos resultados).
Muda: qualidade do agente em tarefas longas de multi-arquivo é diferente da do Opus/Sonnet. Pra C++ de Unreal com muito contexto de header, vale testar antes de migrar de vez.
Mapeamento automático: se você passar nomes de modelo da Anthropic, a DeepSeek mapeia — claude-opus* → deepseek-v4-pro, claude-sonnet* e claude-haiku* → deepseek-v4-flash.
Se quiser trocar de provedor no meio da sessão (DeepSeek → Ollama local → OpenRouter):
npm install -g @musistudio/claude-code-router
ccr codeConfig em ~/.claude-code-router/config.json:
{
"log": true,
"Providers": [
{
"name": "deepseek",
"api_base_url": "https://api.deepseek.com/chat/completions",
"api_key": "sk-SUA_KEY",
"models": ["deepseek-v4-pro", "deepseek-v4-flash"],
"transformer": { "use": ["deepseek"] }
}
],
"Router": {
"default": "deepseek,deepseek-v4-flash",
"background": "deepseek,deepseek-v4-flash",
"think": "deepseek,deepseek-v4-pro",
"longContext": "deepseek,deepseek-v4-pro"
}
}Troca de modelo em sessão: /model deepseek,deepseek-v4-pro
Vantagem: roteamento por tipo de tarefa (background barato, raciocínio caro) e vários provedores. Desvantagem: mais uma camada de proxy pra dar problema.
- DeepSeek — Integrate with Claude Code: https://api-docs.deepseek.com/quick_start/agent_integrations/claude_code/
- DeepSeek — Anthropic API guide: https://api-docs.deepseek.com/guides/anthropic_api
- claude-code-router: https://github.com/musistudio/claude-code-router