Przejdź do głównej treści
OpenCode (GitHub) to otwartoźródłowy terminalowy agent kodujący AI, który współpracuje z wieloma dostawcami.
Protokół: zgodny z OpenAI
  • Bazowy URL: https://api.orcarouter.ai/v1 (zawiera /v1)
Modele rozumujące Claude przez protokół OpenAI odrzucają temperature != 1 (400 temperature may only be set to 1 when thinking is enabled). Użyj modelu nierozumującego lub włącz reasoningEffort — zobacz Włączanie myślenia.

Instalacja

npm install -g opencode-ai

Konfiguracja

Plik konfiguracyjny: ~/.config/opencode/opencode.json.
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "orcarouter": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OrcaRouter",
      "options": { "baseURL": "https://api.orcarouter.ai/v1", "apiKey": "sk-orca-..." },
      "models": { "orcarouter/auto": { "name": "OrcaRouter Auto" } }
    }
  },
  "model": "orcarouter/orcarouter/auto"
}
Podstaw konkretny model, jeśli wolisz, np. google/gemini-2.5-flash lub anthropic/claude-opus-4.8. Identyfikatory modeli zawsze używają formatu vendor/model.

Uruchomienie

opencode run "Reply with exactly: OK"
Oczekiwany wynik: OK.

Uwagi

  • Bazowy URL musi zawierać /v1.
  • Odwołania do modeli używają formatu provider/model. Ponieważ dostawca nosi nazwę orcarouter, a identyfikator modelu również niesie prefiks vendor, odwołanie ma trzy segmenty: orcarouter/orcarouter/auto (lub orcarouter/anthropic/claude-opus-4.8 dla konkretnego modelu).
Rozszerzenie VS Code: Oficjalne rozszerzenie OpenCode do VS Code (sst-dev.opencode) uruchamia CLI wewnątrz edytora i współdzieli ten sam plik opencode.json — nie ma osobnego ustawienia punktu końcowego w edytorze. Skonfiguruj je raz jak powyżej, a rozszerzenie samo je wykryje.

Włączanie myślenia / rozumowania

Ustaw reasoningEffort w options modelu:
"models": {
  "anthropic/claude-sonnet-4.6": {
    "name": "Sonnet 4.6",
    "options": { "reasoningEffort": "high" }
  }
}
Włączenie reasoningEffort omija również ostrzeżenie o temperature powyżej — przy włączonym myśleniu temperature = 1 jest dozwolone, więc błąd 400 znika. Dla natywnego sterowania Anthropic dostawca @ai-sdk/anthropic akceptuje thinking: { type: "enabled", budgetTokens: N }.