api.options-v1 no OpenCode, do zero ao primeiro prompt
api.options-v1 no seu OpenCode.
Instale o OpenCode, cole a configuração com a sua chave e o modelo passa a rodar direto no seu terminal. O vídeo mostra tudo em pouco mais de um minuto.
npm install -g opencode-aiNo macOS ou no Linux também dá pelo script oficial:
curl -fsSL https://opencode.ai/install | bashCole a configuração
O OpenCode lê um arquivo de configuração global. Rode o comando do seu sistema para criar a pasta (se precisar) e abrir o arquivo. Depois cole o conteúdo e salve.
Já tem um opencode.jsonc? Não apague nada: adicione só o bloco "options" dentro de "provider" e troque a linha "model".
mkdir -Force "$env:USERPROFILE\.config\opencode"; notepad "$env:USERPROFILE\.config\opencode\opencode.jsonc"O Bloco de Notas pergunta se você quer criar o arquivo: clique em Sim.
mkdir -p ~/.config/opencode && nano ~/.config/opencode/opencode.jsonc{
"$schema": "https://opencode.ai/config.json",
"provider": {
"options": {
"npm": "@ai-sdk/openai-compatible",
"name": "api.options",
"options": {
"baseURL": "https://api.options.bid/v1",
"apiKey": "sk-options_SUA_CHAVE"
},
"models": {
"api.options-v1": {
"name": "api.options-v1",
"interleaved": "reasoning",
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] },
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" },
"none": { "reasoningEffort": "none" }
},
"limit": { "context": 245760, "output": 32000 }
}
}
}
},
"model": "options/api.options-v1"
}Prefere que o próprio OpenCode configure?
Abra o OpenCode com qualquer modelo, cole este pedido e depois reinicie o OpenCode.
Adicione o provider "options" no meu OpenCode editando o arquivo de configuração GLOBAL.
1. O arquivo fica em C:\Users\<meu usuário>\.config\opencode\opencode.jsonc no Windows, ou em ~/.config/opencode/opencode.jsonc no macOS e no Linux. Se não existir, crie a pasta e o arquivo. Se existir só opencode.json, use esse.
2. Preserve tudo o que já existe (outros providers, mcp etc.). Não reescreva o arquivo do zero.
3. Dentro de "provider", adicione exatamente este bloco:
"options": {
"npm": "@ai-sdk/openai-compatible",
"name": "api.options",
"options": {
"baseURL": "https://api.options.bid/v1",
"apiKey": "sk-options_SUA_CHAVE"
},
"models": {
"api.options-v1": {
"name": "api.options-v1",
"interleaved": "reasoning",
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] },
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" },
"none": { "reasoningEffort": "none" }
},
"limit": { "context": 245760, "output": 32000 }
}
}
}
4. Defina "model": "options/api.options-v1" no topo do arquivo, substituindo o valor anterior se houver.
5. Confira se o arquivo final é JSON/JSONC válido, sem vírgula sobrando antes de } ou ].
6. Me mostre o conteúdo final do arquivo.Abra no seu projeto
Entre na pasta do projeto e abra o OpenCode. O api.options-v1 já vem como modelo padrão.
Editou o arquivo com o OpenCode aberto? Feche e abra de novo para ele ler a configuração.
cd caminho/do/seu-projeto
opencodePara testar rápido, sem abrir a interface:
opencode run "diga oi" --model options/api.options-v1Escolha o nível de raciocínio
Dentro do OpenCode, Ctrl + T alterna entre os níveis. Se você não mexer em nada, ele usa low.
noneSem raciocínio. Respostas diretas, as mais rápidas.lowPadrão. Rápido para o dia a dia.mediumEquilíbrio entre velocidade e cuidado.highPara bugs difíceis e refatorações grandes.xhighO máximo de raciocínio. Mais lento.
Chame a API direto
A API segue o formato da OpenAI, então qualquer SDK ou ferramenta compatível funciona com a mesma chave.
- Base URL
https://api.options.bid/v1- Chave
Authorization: Bearer sua-chave- Modelo
api.options-v1- Endpoints
POST /chat/completionsGET /models- Raciocínio
reasoning_effort: none, low, medium, high ou xhigh. Padrão: low.- Streaming
stream: true (padrão) para receber aos poucos, false para a resposta inteira.
curl https://api.options.bid/v1/chat/completions \
-H "Authorization: Bearer sk-options_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"model": "api.options-v1",
"stream": true,
"reasoning_effort": "low",
"messages": [{ "role": "user", "content": "Explique closures em JavaScript" }]
}'No Windows, rode este exemplo no Git Bash ou no WSL.
from openai import OpenAI
client = OpenAI(
base_url="https://api.options.bid/v1",
api_key="sk-options_SUA_CHAVE",
)
stream = client.chat.completions.create(
model="api.options-v1",
messages=[{"role": "user", "content": "Explique closures em JavaScript"}],
reasoning_effort="low",
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.options.bid/v1",
apiKey: "sk-options_SUA_CHAVE",
});
const stream = await client.chat.completions.create({
model: "api.options-v1",
messages: [{ role: "user", content: "Explique closures em JavaScript" }],
reasoning_effort: "low",
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}Se algo der errado
| O que aparece | O que significa | Como resolver |
|---|---|---|
401 invalid_api_key | A chave está errada, incompleta ou não existe. | Confira o apiKey: a chave começa com sk-options_ e tem 35 caracteres. |
403 key_inactive | Sua chave ainda não foi ativada. | Aguarde a ativação. O status aparece no seu painel. |
403 key_expired | A validade da chave acabou. | Peça a renovação da sua chave. |
429 session_limit | Você usou todo o limite da sessão de 5 horas. | A mensagem diz a hora em que a sessão reinicia. Acompanhe no painel. |
429 weekly_limit | Você usou todo o limite da semana. | O limite reinicia segunda às 00:00, horário de Brasília. |
429 rate_limit_exceeded | Muitas requisições no mesmo minuto. | Espere um minuto e tente de novo. |
400 context_limit | A conversa passou do contexto do seu plano. | Use /compact no OpenCode ou comece uma nova sessão. |
503 | Instabilidade ou manutenção. | Tente de novo em instantes. |
| O modelo não aparece | Arquivo salvo no lugar errado ou JSON inválido. | Confira o caminho do arquivo e procure vírgula sobrando antes de } ou ]. |
| Nada mudou depois de editar | O OpenCode não recarregou a configuração. | Feche e abra o OpenCode de novo. |