Início → Guias → OpenCode com uma API personalizada: configuração, Claude, small_model e custos reais

OpenCode com uma API personalizada: configuração, Claude, small_model e custos reais

O OpenCode lê os provedores do opencode.json, então a configuração é um único arquivo. O que nos surpreendeu foi a conta: pedir uma única palavra gerou duas requisições e mais de 12.000 tokens de entrada. Rodamos o OpenCode 1.19.0 no nosso gateway com três modelos para mostrar para onde vão os tokens e como cortá-los.

O arquivo de configuração

Coloque isto em ~/.config/opencode/opencode.json (ou em opencode.json no projeto):

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "apiclan": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "APICLAN",
      "options": {
        "baseURL": "https://apiclan.us/v1",
        "apiKey": "{env:APICLAN_GPT_KEY}"
      },
      "models": {
        "gpt-6-astra": {},
        "gpt-6.1-sol": {}
      }
    }
  }
}
  1. Crie uma chave no console e defina-a como variável de ambiente, por exemplo APICLAN_GPT_KEY.
  2. Em models, liste só modelos do grupo dessa chave. Cada chave pertence a um único grupo, então GPT, DeepSeek e Claude precisam cada um da sua entrada de provedor e da sua chave.
  3. Inicie o opencode, digite /models e escolha APICLAN → gpt-6-astra. Em scripts: opencode run -m apiclan/gpt-6-astra "...".
baseURLResultado
https://apiclan.us/v1✓
https://apiclan.us✗ 404 Not Found

O @ai-sdk/openai-compatible só acrescenta /chat/completions ao baseURL, então o /v1 precisa já estar lá. Sem ele, o OpenCode para com um simples Not Found.

Adicionando o Claude

Adicione um segundo provedor dentro de provider, com o pacote da Anthropic e uma chave de um grupo Claude:

"claude": {
  "npm": "@ai-sdk/anthropic",
  "name": "APICLAN Claude",
  "options": {
    "baseURL": "https://apiclan.us/v1",
    "apiKey": "{env:APICLAN_CLAUDE_KEY}"
  },
  "models": { "claude-fable-5-1": {} }
}

Aqui o baseURL também precisa terminar em /v1: o pacote da Anthropic só acrescenta /messages, e https://apiclan.us sozinho devolveu 404 no nosso teste. É o oposto do Claude Code, cujo ANTHROPIC_BASE_URL não pode ter /v1.

Quanto custa uma resposta curta

Pedimos ao OpenCode “Reply with just OK” em um projeto vazio. Todos os modelos fizeram duas requisições: uma para dar título à sessão e a de verdade, que leva o prompt de sistema e as definições de ferramentas do OpenCode.

ModeloRequisiçõesTokens de entrada (título + resposta)Tempo totalCusto
gpt-6-astra24,640 + 7,67820.5 s$0.050
deepseek-v4-pro2528 + 5,70834.1 s$0.005
deepseek-v4.1-flash2529 + 3,02721.8 s$0.0006

O OpenCode manda aos modelos GPT um prompt de sistema bem mais longo (cerca de 7.700 tokens) do que ao DeepSeek (cerca de 3.000), e só a requisição de título usou 4.640 tokens no GPT. Por isso o mesmo “OK” custou cerca de 77 vezes mais no gpt-6-astra do que no deepseek-v4.1-flash. Testado em 12 de outubro de 2026 com o OpenCode 1.19.0; custos conforme cobrados pelo nosso gateway.

Corte o custo extra com small_model

O OpenCode usa o small_model para tarefas paralelas, como títulos de sessão. Aponte-o para um modelo barato em um provedor próprio:

"small_model": "apiclan-ds/deepseek-v4.1-flash",
"provider": {
  "apiclan": { ... },
  "apiclan-ds": {
    "npm": "@ai-sdk/openai-compatible",
    "options": {
      "baseURL": "https://apiclan.us/v1",
      "apiKey": "{env:APICLAN_DS_KEY}"
    },
    "models": { "deepseek-v4.1-flash": {} }
  }
}

Com o gpt-6-astra como modelo principal, a requisição de título caiu de US$ 0,0187 para US$ 0,00003, e a troca inteira de uma palavra de US$ 0,050 para US$ 0,031 — 38% a menos em cada nova sessão, sem mudar as respostas.

Uma pequena tarefa de código

A mesma tarefa para cada modelo: escrever fizzbuzz.py e os testes em pytest, sem executar comandos. Depois conferimos cada função com a saída correta de 1 a 30.

ModeloRequisiçõesTempo totalCustoCorretoAsserções de teste
gpt-6-astra340 s$0.069✓2
deepseek-v4-pro361 s$0.008✓7
deepseek-v4.1-flash325 s$0.0011✓7

Os três escreveram código correto em três requisições. O deepseek-v4.1-flash foi o mais rápido e custou cerca de 1/60 do gpt-6-astra; os dois modelos DeepSeek também escreveram testes mais completos. O deepseek-v4-pro foi o mais lento porque raciocina antes de cada passo. O tempo total inclui alguns segundos de inicialização do próprio OpenCode.

Erros comuns

Outras ferramentas de código: Cline com uma API personalizada · Codex com uma API personalizada.

Comece a usar

Sem assinatura, sem mínimo mensal, sem conversa com vendedor. Recarregue com USDT e gaste o que usar — 1 USDT dá 2 créditos de saldo de API.

Leia o início rápido de 30 segundos

Idioma: English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Deutsch · Français · Español · Türkçe · Português · Italiano · Bahasa Indonesia · Tiếng Việt · Bahasa Melayu · Polski · Čeština · فارسی · Русский

Os preços desta página são preenchidos automaticamente com dados reais de cobrança. Condições de terceiros são citadas da documentação deles.