OpenCode com UberLLM: um provedor mais barato em opencode.json
Adicione um provedor "uberllm" a ~/.config/opencode/opencode.json com npm "@ai-sdk/openai-compatible", baseURL https://api.uberllm.dev/v1 e os modelos que você quiser, forneça sua chave UberLLM (variável de ambiente ou /connect), então selecione uberllm/<model id> com /models.
Passos
- Crie uma chave na sua página de chaves e adicione crédito.
- Abra (ou crie)
~/.config/opencode/opencode.json. Apenas para um projeto, useopencode.jsonna pasta do projeto em vez disso. - Adicione o provedor:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"uberllm": {
"npm": "@ai-sdk/openai-compatible",
"name": "UberLLM",
"options": {
"baseURL": "https://api.uberllm.dev/v1",
"apiKey": "{env:UBERLLM_API_KEY}"
},
"models": {
"moonshotai/kimi-k3": { "name": "moonshotai/kimi-k3" },
"deepseek/deepseek-v4.1-flash": { "name": "deepseek/deepseek-v4.1-flash" },
"deepseek/deepseek-v4.1-flash": { "name": "deepseek/deepseek-v4.1-flash" }
}
}
},
"model": "uberllm/moonshotai/kimi-k3",
"small_model": "uberllm/deepseek/deepseek-v4.1-flash"
}
- Dê a chave ao OpenCode. Ou defina a variável que a configuração lê:
export UBERLLM_API_KEY=ull_your_key
ou execute /connect dentro do OpenCode, role até Outros, insira uberllm como o id do provedor e cole a chave. O id deve corresponder exatamente ao nome em provider. Se você usar /connect, pode excluir a linha apiKey.
- Inicie
opencode, digite/modelse escolha um dos modelos UberLLM.
Por que o ID do modelo tem duas barras
OpenCode chama um modelo <provider>/<model>, e os IDs do UberLLM já contêm uma barra (deepseek/…). OpenCode divide apenas na primeira barra, então uberllm/moonshotai/kimi-k3 significa provedor uberllm, modelo moonshotai/kimi-k3. A chave em models deve ser o ID do UberLLM exatamente como está em uberllm.dev/models.
Informe ao OpenCode o tamanho do contexto
O OpenCode usa o tamanho do contexto para saber quando compactar uma sessão longa. Adicione um limit a cada modelo, usando os números na página do modelo:
"moonshotai/kimi-k3": {
"name": "moonshotai/kimi-k3",
"limit": { "context": 1000000, "output": 64000 }
}
Os números acima são um exemplo; copie os reais para o modelo que você escolher.
Use o pacote certo
Mantenha "npm": "@ai-sdk/openai-compatible". Esse pacote chama /v1/chat/completions, a rota em que todo modelo UberLLM é testado.
Solução de Problemas
ProviderModelNotFoundError: o modelo que você escolheu não está na listamodels, ou a chave lá difere do ID em"model". Adicione-o com o ID exato do UberLLM.- 401 / sem resposta:
{env:UBERLLM_API_KEY}fica vazio quando a variável não está definida no shell que iniciou o OpenCode. Exporte-a, ou use/connect. /connectchave não usada: o ID do provedor que você digitou lá não éuberllm. Executeopencode auth listpara ver o que está armazenado.- 404: verifique se
baseURLtermina em/v1, e se o pacote npm é o compatível com openai. - 402 créditos insuficientes: adicione crédito na página de créditos.
Continue lendo
- Página de referência: OpenCode doc
- Kilo Code setup (mesmo formato de configuração)
- Claude Code no UberLLM
- API do Claude mais barata