OpenCode AI API-Key einrichten — OpenAI-kompatible Konfiguration
So konfigurieren Sie OpenCode AI mit einem benutzerdefinierten API-Key von APIMaster.ai. Fügen Sie APIMaster als OpenAI-kompatiblen Anbieter in opencode.jsonc hinzu und greifen Sie auf Claude, GPT-5.5 und DeepSeek mit Bildeingabe (Vision) und optionalen Reasoning-Stufen zu.
OpenCode Desktop ist der grafische Client für OpenCode (derzeit Beta): lokale Agent-Sitzungen, Dateibearbeitungen und Shell-Ausführungen. APIMaster.ai ist OpenAI-kompatibel — fügen Sie es unter Einstellungen → Anbieter → Benutzerdefinierter Anbieter hinzu.
Holen Sie sich zuerst Ihren API-Schlüssel. Verwenden Sie unten den Platzhalter
your_apimaster_key; Screenshots maskieren echte Schlüssel.
Voraussetzungen
- OpenCode Desktop installiert von opencode.ai/download.
- Windows:
opencode-desktop-win-x64.exe - macOS:
brew install --cask opencode-desktopoder.dmg - Linux:
.deb/.rpm/ AppImage
- Windows:
- APIMaster API-Schlüssel aus der Konsole.
Schritt 1 — Anbieter öffnen
- Starten Sie OpenCode Desktop und öffnen Sie einen Arbeitsbereich.
- Klicken Sie auf das Zahnrad-Symbol (unten links).
- Wählen Sie Anbieter in der Seitenleiste.
- Scrollen Sie zu Benutzerdefinierter Anbieter (Fügen Sie einen OpenAI-kompatiblen Anbieter per Basis-URL hinzu).
- Klicken Sie auf + Verbinden.

Schritt 2 — Benutzerdefiniertes Anbieterformular
| Feld | Wert |
|---|---|
| Anbieter-ID | apimaster |
| Anzeigename | APIMaster.ai |
| Basis-URL | https://apimaster.ai/v1 |
| API-Schlüssel | Ihr APIMaster-Schlüssel |

Lassen Sie Header leer, es sei denn, Sie authentifizieren sich nur über Header.
Schritt 3 — Modelle hinzufügen & absenden
Auf dem nächsten Bildschirm ordnen Sie Modelle zu (links = Bezeichnung in OpenCode, rechts = Modell-ID, die an APIMaster gesendet wird — normalerweise identisch):
| Links | Rechts |
|---|---|
gpt-5.4 |
gpt-5.4 |
claude-sonnet-4-6 |
claude-sonnet-4-6 |
- Klicken Sie auf + Modell hinzufügen für weitere Zeilen.
- Klicken Sie auf Absenden.

Wählen Sie IDs aus dem Marktplatz. Vermeiden Sie reine Bildgenerierungs-Modelle (z. B. gpt-image-2) für Agent-Chats.
Benötigen Sie Bilderkennung (Vision)?
gpt-5.5,claude-sonnet-4-6,claude-opus-4-7,claude-opus-4-8undclaude-haiku-4-5unterstützen Bildeingabe, aber OpenCode benötigt eine zusätzliche Fähigkeitsdeklaration — siehe Bildeingabe für GPT und Claude aktivieren.
Schritt 4 — Ein Modell auswählen
- Starten oder öffnen Sie eine Sitzung.
- Öffnen Sie das Modell-Dropdown unterhalb der Eingabe.
- Wählen Sie unter APIMaster.ai ein Modell aus (z. B.
claude-sonnet-4-6).

Schritt 5 — Testen
Senden Sie hallo oder eine kleine Programmieraufgabe. Eine normale Assistant-Antwort (Dateibearbeitungen / Shell) bedeutet, dass APIMaster verbunden ist.

Fortgeschritten: opencode.jsonc & Reasoning
Der obige UI-Ablauf ist für einen schnellen Start ausreichend. Um Reasoning / Thinking-Effort-Stufen (low, high, max, …) für dieselbe Modell-ID zu konfigurieren, bearbeiten Sie opencode.jsonc.
Konfigurationsdatei-Speicherort
| Betriebssystem | Pfad |
|---|---|
| macOS / Linux | ~/.config/opencode/opencode.jsonc |
| Windows | C:\Users\<benutzername>\.config\opencode\opencode.jsonc |
Erstellen Sie die Datei, falls sie fehlt. Starten Sie OpenCode Desktop neu oder beginnen Sie eine neue Sitzung nach dem Speichern.
API-Schlüssel (nicht in jsonc speichern)
Speichern Sie Ihren API-Schlüssel nicht in opencode.jsonc.
Verwenden Sie:
/connectim Terminal, oder- Einstellungen → Anbieter → Anbieter verbinden (wie in Schritten 1–2 oben).
Bewahren Sie Geheimnisse im Authentifizierungsspeicher von OpenCode auf; jsonc definiert nur Anbieter, Modelle und Reasoning-Varianten.
APIMaster-Anbieter in jsonc
Anbieter-ID: apimaster. npm-Paket: @ai-sdk/openai-compatible.
baseURL muss sein:
https://apimaster.ai/v1
Nicht https://apimaster.ai/ — OpenCode hängt /chat/completions an. Ohne /v1 erhalten Sie https://apimaster.ai/chat/completions → 404 Nicht gefunden.
Ebenfalls nicht
https://api.apimaster.ai/v1— der Host mit demapi.-Präfix kann in Tests zu TLS-/Verbindungsfehlern führen. Der korrekte Host isthttps://apimaster.ai/v1.
Vollständiges Beispiel mit Reasoning-Varianten — herunterladen und die Konfiguration von OpenCode überschreiben:
- Laden Sie opencode.jsonc herunter
- Überschreiben (oder speichern als):
- macOS / Linux:
~/.config/opencode/opencode.jsonc - Windows:
C:\Users\<benutzername>\.config\opencode\opencode.jsonc
- macOS / Linux:
- Konfigurieren Sie den API-Schlüssel über
/connectoder die UI (niemals in jsonc). - Starten Sie OpenCode Desktop neu oder beginnen Sie eine neue Sitzung.
Sichern Sie Ihre vorhandene Datei vor dem Überschreiben oder führen Sie nur den Block
provider.apimasterzusammen.
Minimale Struktur:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"apimaster": {
"name": "APIMaster.ai",
"npm": "@ai-sdk/openai-compatible",
"options": { "baseURL": "https://apimaster.ai/v1" },
"models": {
"gpt-5.5": {
"name": "gpt-5.5",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"high": { "reasoningEffort": "high" }
}
}
}
}
}
}
Die Felder
attachmentundmodalitiesbeigpt-5.5oben aktivieren die Bildeingabe (Vision) — siehe Bildeingabe für GPT und Claude aktivieren. Lassen Sie sie weg, wenn Sie nur Text-Chat benötigen.
Reasoning-Prinzipien
variants= mehrere Reasoning-Stufen für eine Modell-ID in der UI.- Für OpenAI-kompatible APIs bildet OpenCode
reasoningEffort→reasoning_effortim Anforderungstext ab. - Variantennamen sollten dem tatsächlichen Parameter entsprechen (
high→"reasoningEffort": "high"). - Jedes Modell unterstützt unterschiedliche Stufen — konfigurieren Sie gemäß der offiziellen Dokumentation; keine versteckte Neuzuordnung.
Reasoning-Stufen nach Modell
| Modell | Reasoning-Varianten | Hinweise |
|---|---|---|
gpt-5.4 |
low, medium, high, xhigh |
GPT-Reasoning |
gpt-5.5 |
low, medium, high, xhigh |
GPT-Reasoning |
deepseek-v4-flash |
high, max |
DeepSeek-Denken (empfohlen) |
deepseek-v4-pro |
high, max |
DeepSeek-Denken (empfohlen) |
claude-sonnet-4-6 |
low, medium, high, max |
Claude Sonnet-Aufwand |
claude-opus-4-7 |
low, medium, high, xhigh, max |
Claude Opus-Aufwand |
claude-opus-4-8 |
low, medium, high, xhigh, max |
Claude Opus-Aufwand |
claude-haiku-4-5 |
keine | Keine unbestätigten Aufwandstufen |
minimax-m3 |
keine | Keine unbestätigten Aufwandstufen |
Siehe opencode.jsonc für die vollständige Datei.
Reasoning in OpenCode wechseln
- Speichern Sie
opencode.jsonc, dann neu starten oder neue Sitzung. - Verwenden Sie das Modell-/Reasoning-Dropdown (z. B.
gpt-5.4 / high). - Falls in Ihrem Build unterstützt:
Strg + Umschalt + Ddurchläuft die Reasoning-Stufen.
Bildeingabe für GPT und Claude aktivieren
APIMaster.ai-Modelle wie gpt-5.5, claude-sonnet-4-6, claude-opus-4-7, claude-opus-4-8 und claude-haiku-4-5 unterstützen Bildeingabe / Vision — das Lesen von Screenshots, Fotos und Diagrammen zur Erkennung, Beschreibung, OCR oder zum Programmieren aus einem Bild.
Ein Modell, das Bilder unterstützt ≠ OpenCode sendet das Bild. Auch wenn das APIMaster.ai-Modell selbst Vision unterstützt, müssen Sie die Fähigkeit deklarieren in
opencode.jsonc. Andernfalls sendet OpenCode das Bild möglicherweise nicht als multimodale Eingabe — es fügt nur den Anhang-/Dateinamen in den Prompt ein, und das Modell antwortet in etwa mit „Das aktuelle Modell unterstützt keine Bildeingabe.“
Die beiden zu deklarierenden Felder
Fügen Sie für jedes Modell, das Sie mit Bildern verwenden möchten, hinzu:
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
}
attachment: trueteilt OpenCode mit, dass dieses Modell Anhänge akzeptiert.modalities.input, das"image"enthält, teilt OpenCode mit, dass dieses Modell Bildeingabe unterstützt, sodass OpenCode das Bild in multimodalenimage_url-Inhalt umwandelt.
Vollständiges Beispiel (GPT und Claude)
Laden Sie opencode.jsonc herunter (Felder bereits enthalten) oder führen Sie den Block provider.apimaster unten in Ihre bestehende Konfiguration zusammen:
{
"$schema": "https://opencode.ai/config.json",
"disabled_providers": [],
"provider": {
"apimaster": {
"name": "APIMaster.ai",
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://apimaster.ai/v1"
},
"models": {
"gpt-5.5": {
"name": "gpt-5.5",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" }
}
},
"claude-sonnet-4-6": {
"name": "claude-sonnet-4-6",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"max": { "reasoningEffort": "max" }
}
},
"claude-opus-4-7": {
"name": "claude-opus-4-7",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" },
"max": { "reasoningEffort": "max" }
}
},
"claude-opus-4-8": {
"name": "claude-opus-4-8",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" },
"max": { "reasoningEffort": "max" }
}
},
"claude-haiku-4-5": {
"name": "claude-haiku-4-5",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
}
}
}
}
}
}
Hinweise:
- Um die Bildeingabe nur für
gpt-5.5zu aktivieren, fügen Sieattachmentundmodalitiesallein zugpt-5.5hinzu; lassen Sie die anderen unverändert. - Um nur Claude zu aktivieren, fügen Sie diese Felder nur den Claude-Modellen hinzu.
- Behalten Sie die bestehenden Reasoning-Varianten jedes Modells (
low/medium/high/xhigh/max) bei — Bildfelder und Reasoning kollidieren nicht. - Beenden Sie OpenCode nach dem Bearbeiten von
opencode.jsoncvollständig und starten Sie es neu, oder beginnen Sie zumindest eine neue Sitzung, damit die Konfiguration neu geladen wird. - Legen Sie den API-Schlüssel niemals in dieser Datei ab — konfigurieren Sie ihn über
/connectoder die UI (siehe Sicherheit unten).
Bildquelle: lokaler Upload / base64 bevorzugen
- Empfohlen: Laden Sie ein lokales PNG / JPG in OpenCode hoch. Idealerweise wandelt OpenCode es in eine base64-Daten-URL (
data:image/png;base64,...) um, bevor es an APIMaster gesendet wird — dies ist der verifizierte funktionierende Weg. - Das direkte Übergeben einer öffentlichen Bild-URL kann fehlschlagen. APIMaster / der Upstream kann ein öffentliches Bild aufgrund von Netzwerk, Format, Größe, MIME oder Hotlink-Schutz möglicherweise nicht herunterladen und gibt zurück:
Verwenden Sie in diesem Fall eine base64-Daten-URL oder einen lokalen Upload, anstatt sich darauf zu verlassen, dass die Modellseite eine öffentliche URL herunterlädt.Error while downloading file. Upstream status code: 400.
Testen, ob die Bilderkennung funktioniert
Option A — In OpenCode testen
- Wechseln Sie im Modell-Dropdown zu
apimaster/gpt-5.5oderapimaster/claude-sonnet-4-6. - Laden Sie ein PNG-/JPG-Bild hoch.
- Geben Sie ein:
Describe the main content of this image.
- Bei korrekter Konfiguration sollte das Modell den Bildinhalt beschreiben.
- Wenn das Modell nur einen Datei-/Anhangnamen erwähnt oder mit „image input not supported“ antwortet, sendet OpenCode wahrscheinlich den Bildinhalt nicht — prüfen Sie die Felder
attachmentundmodalitiesdes Modells und starten Sie OpenCode neu.
Option B — Direkt über die API testen
Nützlich, um ein APIMaster-Modellproblem von einem OpenCode-Adapterproblem zu unterscheiden. Codieren Sie niemals einen echten Schlüssel fest — verwenden Sie eine Umgebungsvariable.
Linux / macOS:
export APIMASTER_API_KEY="your APIMaster API key"
curl https://apimaster.ai/v1/chat/completions \
-H "Authorization: Bearer $APIMASTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Describe this image." },
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,YOUR_IMAGE_BASE64"
}
}
]
}
],
"max_tokens": 1000
}'
Tauschen Sie model gegen claude-sonnet-4-6 aus, um Claude auf dieselbe Weise zu testen (verifiziert HTTP 200 mit Bilderkennung).
Windows PowerShell:
$env:APIMASTER_API_KEY = "your APIMaster API key"
# Convert a local image to base64, put it into image_url.url as data:image/png;base64,...
# Then call https://apimaster.ai/v1/chat/completions with the same JSON body.
Eine 200-Antwort, die das Bild beschreibt, bedeutet, dass die Bildeingabe auf APIMaster-Seite funktioniert; wenn OpenCode weiterhin fehlschlägt, liegt das Problem in der
attachment-/modalities-Konfiguration von OpenCode oder an einem fehlenden Neustart.
Fehlerbehebung
UI-Einrichtung
| Problem | Lösung |
|---|---|
| 401 | Schlüssel prüfen; bei Offenlegung rotieren |
| Modell nicht gefunden | Basis-URL muss https://apimaster.ai/v1 sein; Modell-ID muss mit dem Marktplatz übereinstimmen |
| Keine APIMaster-Modelle | Anbieter in Einstellungen bearbeiten → Zuordnungen hinzufügen → Absenden |
| Langsam / Zeitüberschreitung | Versuchen Sie ein anderes Modell; verwenden Sie den API-Schlüssel-Tester |
Reasoning / jsonc
Warum nur high und max für DeepSeek?
Der offizielle OpenAI-kompatible Denkaufwand für DeepSeek ist high und max. Vermeiden Sie low / medium / xhigh, die unvorhersehbar neu zugeordnet werden.
Warum max für Claude Sonnet, nicht xhigh?
Die höchste Stufe von Sonnet ist max; xhigh ist für Opus (claude-opus-4-7 / claude-opus-4-8).
Warum keine Varianten für Haiku oder MiniMax M3?
Ohne dokumentierte reasoningEffort-Werte überspringen Sie Varianten — das Modell funktioniert trotzdem; die UI zeigt nur keine Reasoning-Unterstufen an.
Erhalten Sie immer noch 400?
baseURL=https://apimaster.ai/v1(nicht die Site-Root).- Die Schreibweise der Modell-ID stimmt mit dem Marktplatz überein.
- Schlüssel über
/connectoder UI konfiguriert. - Entfernen Sie vorübergehend
variants— wenn einfache Anfragen funktionieren, ist das gewähltereasoning_effortmöglicherweise für dieses Modell nicht unterstützt.
Bildeingabe / Vision
Warum sagt OpenCode „Das aktuelle Modell unterstützt keine Bildeingabe“?
- Die
gpt-5.5- und mehrere Claude-Modelle von APIMaster.ai unterstützen Bildeingabe; diese Meldung bedeutet normalerweise, dass OpenCode das Bild nicht als multimodale Eingabe sendet. - Prüfen Sie, dass das Modell in
opencode.jsoncFolgendes hat:"attachment": true, "modalities": { "input": ["text", "image"], "output": ["text"] } - Bestätigen Sie, dass Sie OpenCode neu gestartet haben nach der Bearbeitung.
- Bestätigen Sie, dass
baseURLhttps://apimaster.ai/v1ist. - Bestätigen Sie, dass der APIMaster API-Schlüssel gültig ist.
- Wenn eine öffentliche Bild-URL fehlschlägt, verwenden Sie eine base64-Daten-URL oder einen lokalen Upload.
Warum sieht das Modell nur den Anhangnamen und nicht das Bild?
- Normalerweise hat OpenCode den Anhang nicht gelesen und in Bildeingabe umgewandelt — es hat nur den Datei-/Anhangnamen in den Prompt eingefügt.
- Aktivieren Sie
attachment: trueundmodalities.input: ["text", "image"]und verwenden Sie ein Modell, das Bildeingabe unterstützt.
Warum gibt eine öffentliche Bild-URL einen Fehler aus?
- APIMaster oder der Upstream kann beim Herunterladen eines öffentlichen Bildes durch Netzwerk, Format, Dateigröße, MIME, Hotlink-Schutz oder Proxy eingeschränkt sein.
- Bei
Error while downloading file. Upstream status code: 400.wechseln Sie zu einer base64-Daten-URL.
Funktioniert es nach dem Hinzufügen von attachment immer noch nicht?
- Beenden und starten Sie OpenCode vollständig neu.
- Beginnen Sie eine neue Sitzung zum Testen.
- Bestätigen Sie, dass das aktive Modell der Sitzung dasjenige ist, das Sie mit Bildfeldern konfiguriert haben.
- Bestätigen Sie, dass der API-Schlüssel gültig ist.
- Prüfen Sie die OpenCode-Logs auf 401-/400-/unsupported image-/invalid content type-Fehler.
- Verwenden Sie Option B — Direkt über die API testen mit einem base64-Bild, um ein APIMaster-Modellproblem von einem OpenCode-Adapterproblem zu unterscheiden.
Sicherheit
- Legen Sie den APIMaster API-Schlüssel nicht in
opencode.jsoncab; diese Datei enthält nur Anbieter, Modelle, Bildfähigkeiten und Reasoning. - Fügen Sie den Schlüssel nicht in Chats, Screenshots, Issues, öffentliche Dokumente oder Code-Repositories ein.
- Rotieren Sie Schlüssel, die in Screenshots oder Logs aufgetaucht sind — widerrufen und neu generieren in der Konsole, dann den Anbieter in OpenCode aktualisieren.
- Bevorzugen Sie den
/connect-Ablauf von OpenCode, Umgebungsvariablen oder lokale Anmeldedatenspeicherung zur Verwaltung des API-Schlüssels. - OpenCode kann Dateien lesen/schreiben und Shell-Befehle ausführen — verwenden Sie nur vertrauenswürdige Arbeitsbereiche.
Checkliste
- OpenCode Desktop installiert
- Benutzerdefinierter Anbieter verbunden oder
apimasterinopencode.jsonc - Basis-URL /
baseURL=https://apimaster.ai/v1(nichthttps://apimaster.ai/) - API-Schlüssel über
/connectoder UI (nicht in jsonc) - Mindestens ein Chat-Modell zugeordnet
- (Optional) Reasoning-Varianten entsprechen den offiziellen Stufen
- Testnachricht erfolgreich
Checkliste für Bildeingabe
-
baseURListhttps://apimaster.ai/v1(nichthttps://api.apimaster.ai/v1) - Verwendung eines Vision-fähigen Modells, z. B.
gpt-5.5oder ein Vision-fähiges Claude-Modell - Das Modell hat
attachment: true - Die
modalities.inputdes Modells enthält"image" - OpenCode nach dem Bearbeiten von
opencode.jsoncneu gestartet - API-Schlüssel ist gültig
- Testbild ist ein gängiges Format (PNG / JPG)
- Wenn eine öffentliche Bild-URL fehlschlägt, eine base64-Daten-URL versucht
Zusammenfassung
- Schlüssel:
baseURL(https://apimaster.ai/v1), Modell-ID, API-Schlüssel (/connectoder UI), optionale Reasoning-Varianten. - Varianten-Namen = tatsächliche
reasoning_effort-Werte. - Konfigurieren Sie Stufen pro Modell; überspringen Sie Varianten, wenn nicht unterstützt (Haiku, MiniMax M3).