Como usar o Claude Code com a Zhipu AI (GLM-5) via LiteLLM
Do zero ao funcionando: configure o Claude Code para usar modelos GLM da Zhipu AI como backend, sem gastar créditos da Anthropic. Inclui o config.yaml completo e os comandos do bashrc.
O problema
Você quer usar o Claude Code — a ferramenta de codificação da Anthropic que roda no terminal — mas não quer (ou não pode) pagar o plano Pro da Anthropic. A boa notícia: o Claude Code é suficientemente flexível para usar qualquer API compatível com o formato da Anthropic como backend.
Neste artigo vou mostrar exatamente como configurei o Claude Code para usar os modelos GLM-5 da Zhipu AI (uma empresa chinesa de IA com planos de assinatura mensal bem acessíveis), usando o LiteLLM como proxy local intermediário.
O que é cada peça
Antes de instalar qualquer coisa, é importante entender o papel de cada componente:
| Componente | O que faz |
|---|---|
| Claude Code | A interface CLI da Anthropic — você interage com ela |
| LiteLLM | Proxy local que “traduz” o formato Anthropic para outros provedores |
| Zhipu AI (GLM-5) | O modelo de IA que realmente processa as requisições |
O fluxo completo é:
Você → Claude Code → LiteLLM (porta 4001) → API da Zhipu → GLM-5
O Claude Code acha que está falando com a Anthropic. O LiteLLM faz a tradução nos bastidores.
Pré-requisitos
- Conta na Zhipu AI com o Developer (Coding) Plan ativo
- Node.js instalado
- Python 3.8+ instalado
1. Instalar o Claude Code
npm install -g @anthropic-ai/claude-code
2. Instalar o LiteLLM
pip install litellm[proxy]
3. Criar o arquivo de configuração do LiteLLM
Crie a pasta e o arquivo de configuração:
mkdir -p ~/claude-gemini
Agora crie o arquivo ~/claude-gemini/config.yaml:
model_list:
# Modelo principal (claude-sonnet → GLM-5.0)
- model_name: claude-sonnet-4-5
litellm_params:
model: openai/glm-4-flash
api_base: https://open.bigmodel.cn/api/coding/paas/v4
api_key: os.environ/ZHIPU_API_KEY
# Modelo pesado (claude-opus → GLM-5.1)
- model_name: claude-opus-4-5
litellm_params:
model: openai/glm-4-plus
api_base: https://open.bigmodel.cn/api/coding/paas/v4
api_key: os.environ/ZHIPU_API_KEY
# Modelo leve para subagentes (claude-haiku → GLM-Turbo)
- model_name: claude-haiku-4-5
litellm_params:
model: openai/glm-4-airx
api_base: https://open.bigmodel.cn/api/coding/paas/v4
api_key: os.environ/ZHIPU_API_KEY
litellm_settings:
drop_params: true
Por que
/api/coding/paas/v4? Este é o endpoint exclusivo do plano Developer da Zhipu. Usar o endpoint padrão de chat vai dar erro de autenticação ou cobrar do plano errado.
4. Configurar o .bashrc
Adicione estas linhas ao final do seu ~/.bashrc:
# Chave da API Zhipu
export ZHIPU_API_KEY="sua_chave_aqui"
# Comando para iniciar o LiteLLM + Claude Code
claude-glm() {
local LITELLM_PID
litellm --config ~/claude-gemini/config.yaml --port 4001 &>/dev/null &
LITELLM_PID=$!
sleep 2
ANTHROPIC_BASE_URL=http://localhost:4001 \
ANTHROPIC_API_KEY=fake-key \
claude "$@"
kill $LITELLM_PID 2>/dev/null
}
Aplique as mudanças:
source ~/.bashrc
5. Testar
claude-glm
Se tudo estiver correto, o Claude Code vai abrir normalmente e todas as requisições vão passar pelo LiteLLM → Zhipu.
Por que ANTHROPIC_API_KEY=fake-key?
O Claude Code exige que a variável de ambiente esteja definida para funcionar, mas como o LiteLLM está atuando como intermediário, a chave real que importa é a ZHIPU_API_KEY. A fake-key é só para satisfazer a validação da CLI.
Problemas comuns
Erro: “RateLimit exceeded”
Você provavelmente está usando o endpoint errado. Confirme que o api_base no config.yaml é /api/coding/paas/v4 e não /api/paas/v4.
O Claude Code abre mas não responde
Verifique se o LiteLLM subiu corretamente na porta 4001:
curl http://localhost:4001/health
Demora muito para iniciar
Normal — o LiteLLM precisa de ~2 segundos para inicializar. O sleep 2 no script garante isso.
Próximos passos
- Leia o Artigo 2 para entender a arquitetura completa do LiteLLM
- Leia o Artigo 3 para aprender a monitorar sua cota da Zhipu pelo terminal