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