Konfiguration
Verwendung der OpenCode JSON-Konfiguration.
Sie können OpenCode mit einer JSON-Konfigurationsdatei konfigurieren.
Format
OpenCode unterstützt sowohl das JSON- als auch das JSONC-Format (JSON mit Kommentaren).
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/claude-sonnet-4-5",
"autoupdate": true,
"server": {
"port": 4096,
},
}Speicherorte
Sie können Ihre Konfiguration an verschiedenen Orten ablegen, die eine unterschiedliche Rangfolge haben.
Hinweis: Konfigurationsdateien werden zusammengeführt, nicht ersetzt.
Konfigurationsdateien werden zusammengeführt, nicht ersetzt. Die Einstellungen aus den folgenden Konfigurationsorten werden kombiniert. Spätere Konfigurationen überschreiben frühere nur bei sich widersprechenden Schlüsseln. Nicht widersprüchliche Einstellungen aus allen Konfigurationen bleiben erhalten.
Wenn Ihre globale Konfiguration beispielsweise autoupdate: true setzt und Ihre Projektkonfiguration model: "anthropic/claude-sonnet-4-5" setzt, enthält die endgültige Konfiguration beide Einstellungen.
Rangfolge
Die Konfigurationsquellen werden in dieser Reihenfolge geladen (spätere Quellen überschreiben frühere):
- Remote-Konfiguration (aus
.well-known/opencode) - organisatorische Standardwerte - Globale Konfiguration (
~/.config/opencode/opencode.json) - Benutzereinstellungen - Benutzerdefinierte Konfiguration (
OPENCODE_CONFIG-Umgebungsvariable) - benutzerdefinierte Überschreibungen - Projektkonfiguration (
opencode.jsonim Projekt) - projektspezifische Einstellungen .opencode-Verzeichnisse - Agenten, Befehle, Plugins- Inline-Konfiguration (
OPENCODE_CONFIG_CONTENT-Umgebungsvariable) - Laufzeit-Überschreibungen - Verwaltete Konfigurationsdateien (
/Library/Application Support/opencode/auf macOS) - administratorgesteuert - macOS-verwaltete Einstellungen (
.mobileconfigüber MDM) - höchste Priorität, nicht durch Benutzer überschreibbar
Das bedeutet, dass Projektkonfigurationen globale Standardwerte überschreiben können und globale Konfigurationen organisatorische Remote-Standardwerte überschreiben können. Verwaltete Einstellungen überschreiben alles.
Hinweis: Die Verzeichnisse
.opencodeund~/.config/opencodeverwenden Pluralnamen für Unterverzeichnisse:agents/,commands/,modes/,plugins/,skills/,tools/undthemes/. Singularnamen (z. B.agent/) werden ebenfalls aus Gründen der Abwärtskompatibilität unterstützt.
Remote
Organisationen können eine Standardkonfiguration über den .well-known/opencode-Endpunkt bereitstellen. Diese wird automatisch abgerufen, wenn Sie sich bei einem Anbieter authentifizieren, der dies unterstützt.
Die Remote-Konfiguration wird zuerst geladen und dient als Basisschicht. Alle anderen Konfigurationsquellen (global, Projekt) können diese Standardwerte überschreiben.
Wenn Ihre Organisation beispielsweise MCP-Server bereitstellt, die standardmäßig deaktiviert sind:
{
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": false
}
}
}Sie können bestimmte Server in Ihrer lokalen Konfiguration aktivieren:
{
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": true
}
}
}Global
Platzieren Sie Ihre globale OpenCode-Konfiguration in ~/.config/opencode/opencode.json. Verwenden Sie die globale Konfiguration für benutzerweite Server-/Laufzeiteinstellungen wie Anbieter, Modelle und Berechtigungen.
Für TUI-spezifische Einstellungen verwenden Sie ~/.config/opencode/tui.json.
Die globale Konfiguration überschreibt organisatorische Remote-Standardwerte.
Pro Projekt
Fügen Sie opencode.json im Stammverzeichnis Ihres Projekts hinzu. Die Projektkonfiguration hat die höchste Rangfolge unter den Standard-Konfigurationsdateien – sie überschreibt sowohl die globale als auch die Remote-Konfiguration.
Für projektspezifische TUI-Einstellungen fügen Sie daneben tui.json hinzu.
Tipp: Platzieren Sie die projektspezifische Konfiguration im Stammverzeichnis Ihres Projekts.
Wenn OpenCode startet, sucht es nach einer Konfigurationsdatei im aktuellen Verzeichnis oder durchläuft die Verzeichnisstruktur nach oben bis zum nächsten Git-Verzeichnis.
Diese kann auch sicher in Git eingecheckt werden und verwendet dasselbe Schema wie die globale.
Benutzerdefinierter Pfad
Geben Sie einen benutzerdefinierten Konfigurationsdateipfad über die Umgebungsvariable OPENCODE_CONFIG an.
export OPENCODE_CONFIG=/path/to/my/custom-config.json
opencode run "Hello world"Die benutzerdefinierte Konfiguration wird in der Rangfolge zwischen der globalen und der Projektkonfiguration geladen.
Benutzerdefiniertes Verzeichnis
Geben Sie ein benutzerdefiniertes Konfigurationsverzeichnis über die Umgebungsvariable OPENCODE_CONFIG_DIR
an. Dieses Verzeichnis wird genau wie das standardmäßige .opencode-Verzeichnis nach Agenten, Befehlen,
Modi und Plugins durchsucht und sollte
derselben Struktur folgen.
export OPENCODE_CONFIG_DIR=/path/to/my/config-directory
opencode run "Hello world"Das benutzerdefinierte Verzeichnis wird nach der globalen Konfiguration und den .opencode-Verzeichnissen geladen, sodass es deren Einstellungen überschreiben kann.
Verwaltete Einstellungen
Organisationen können eine Konfiguration erzwingen, die Benutzer nicht überschreiben können. Verwaltete Einstellungen werden in der höchsten Prioritätsstufe geladen.
Dateibasiert
Legen Sie eine opencode.json- oder opencode.jsonc-Datei im verwalteten Systemkonfigurationsverzeichnis ab:
| Plattform | Pfad |
|---|---|
| macOS | /Library/Application Support/opencode/ |
| Linux | /etc/opencode/ |
| Windows | %ProgramData%\opencode |
Diese Verzeichnisse erfordern Admin-/Root-Zugriff zum Schreiben, sodass Benutzer sie nicht ändern können.
macOS-verwaltete Einstellungen
Auf macOS liest OpenCode verwaltete Einstellungen aus der Einstellungsdomäne ai.opencode.managed. Stellen Sie eine .mobileconfig über MDM (Jamf, Kandji, FleetDM) bereit, und die Einstellungen werden automatisch erzwungen.
OpenCode prüft diese Pfade:
/Library/Managed Preferences/<user>/ai.opencode.managed.plist/Library/Managed Preferences/ai.opencode.managed.plist
Die plist-Schlüssel werden direkt auf opencode.json-Felder abgebildet. MDM-Metadatenschlüssel (PayloadUUID, PayloadType usw.) werden automatisch entfernt.
Erstellen einer .mobileconfig
Verwenden Sie den PayloadType ai.opencode.managed. Die OpenCode-Konfigurationsschlüssel gehen direkt in das Payload-Dict:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>ai.opencode.managed</string>
<key>PayloadIdentifier</key>
<string>com.example.opencode.config</string>
<key>PayloadUUID</key>
<string>GENERATE-YOUR-OWN-UUID</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>share</key>
<string>disabled</string>
<key>server</key>
<dict>
<key>hostname</key>
<string>127.0.0.1</string>
</dict>
<key>permission</key>
<dict>
<key>*</key>
<string>ask</string>
<key>bash</key>
<dict>
<key>*</key>
<string>ask</string>
<key>rm -rf *</key>
<string>deny</string>
</dict>
</dict>
</dict>
</array>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadIdentifier</key>
<string>com.example.opencode</string>
<key>PayloadUUID</key>
<string>GENERATE-YOUR-OWN-UUID</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>Generieren Sie eindeutige UUIDs mit uuidgen. Passen Sie die Einstellungen an die Anforderungen Ihrer Organisation an.
Bereitstellung über MDM
- Jamf Pro: Computers > Configuration Profiles > Upload > auf Zielgeräte oder Smart Groups beschränken
- FleetDM: Fügen Sie die
.mobileconfigzu Ihrem gitops-Repo untermdm.macos_settings.custom_settingshinzu und führen Siefleetctl applyaus
Überprüfung auf einem Gerät
Doppelklicken Sie auf die .mobileconfig, um sie lokal zum Testen zu installieren (erscheint in System Settings > Privacy & Security > Profiles), und führen Sie dann aus:
opencode debug configAlle verwalteten Einstellungsschlüssel erscheinen in der aufgelösten Konfiguration und können nicht durch Benutzer- oder Projektkonfigurationen überschrieben werden.
Schema
Das Server-/Laufzeit-Konfigurationsschema ist in opencode.ai/config.json (opens in a new tab) definiert.
Die TUI-Konfiguration verwendet opencode.ai/tui.json (opens in a new tab).
Ihr Editor sollte basierend auf dem Schema validieren und automatisch vervollständigen können.
TUI
Verwenden Sie eine dedizierte tui.json- (oder tui.jsonc-) Datei für TUI-spezifische Einstellungen.
{
"$schema": "https://opencode.ai/tui.json",
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto",
"mouse": true,
"attention": {
"enabled": true,
"notifications": true,
"sound": true,
"volume": 0.4
}
}Verwenden Sie OPENCODE_TUI_CONFIG, um auf eine benutzerdefinierte TUI-Konfigurationsdatei zu verweisen.
Setzen Sie attention.enabled, um TUI-Desktop-Benachrichtigungen und -Töne zu aktivieren. Siehe TUI-Aufmerksamkeit.
Veraltete theme-, keybinds- und tui-Schlüssel in opencode.json werden nicht mehr empfohlen und nach Möglichkeit automatisch migriert.
Server
Sie können Servereinstellungen für die Befehle opencode serve und opencode web über die Option server konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"server": {
"port": 4096,
"hostname": "0.0.0.0",
"mdns": true,
"mdnsDomain": "myproject.local",
"cors": ["http://localhost:5173"]
}
}Verfügbare Optionen:
port- Port, auf dem gelauscht werden soll.hostname- Hostname, auf dem gelauscht werden soll. Wennmdnsaktiviert ist und kein Hostname gesetzt ist, ist der Standardwert0.0.0.0.mdns- mDNS-Dienst-Discovery aktivieren. Dies ermöglicht es anderen Geräten im Netzwerk, Ihren OpenCode-Server zu entdecken.mdnsDomain- Benutzerdefinierter Domainname für den mDNS-Dienst. Standardwert istopencode.local. Nützlich, um mehrere Instanzen im selben Netzwerk auszuführen.cors- Zusätzliche Ursprünge, die für CORS zugelassen werden sollen, wenn der HTTP-Server von einem browserbasierten Client verwendet wird. Werte müssen vollständige Ursprünge sein (Schema + Host + optionaler Port), z. B.https://app.example.com.
Erfahren Sie hier mehr über den Server.
Shell
Sie können die für das interaktive Terminal verwendete Shell über die Option shell konfigurieren. Kompatible Shells werden auch für Agenten-Tool-Aufrufe verwendet.
{
"$schema": "https://opencode.ai/config.json",
"shell": "pwsh"
}Wenn nicht angegeben, erkennt und verwendet OpenCode automatisch einen sinnvollen Standardwert basierend auf Ihrem Betriebssystem (z. B. pwsh oder cmd.exe unter Windows, /bin/zsh oder /bin/bash unter macOS/Linux). Sie können einen absoluten Pfad oder einen Kurznamen angeben.
Tools
Sie können die Tools, die ein LLM verwenden kann, über die Option tools verwalten.
{
"$schema": "https://opencode.ai/config.json",
"tools": {
"write": false,
"bash": false
}
}Erfahren Sie hier mehr über Tools.
Modelle
Sie können die Anbieter und Modelle, die Sie verwenden möchten, in Ihrer OpenCode-Konfiguration über die Optionen provider, model und small_model konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"provider": {},
"model": "anthropic/claude-sonnet-4-5",
"small_model": "anthropic/claude-haiku-4-5"
}Die Option small_model konfiguriert ein separates Modell für leichtgewichtige Aufgaben wie die Titelgenerierung. Standardmäßig versucht OpenCode, ein günstigeres Modell zu verwenden, falls eines von Ihrem Anbieter verfügbar ist, andernfalls fällt es auf Ihr Hauptmodell zurück.
Anbieteroptionen können timeout, chunkTimeout und setCacheKey enthalten:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"timeout": 600000,
"chunkTimeout": 30000,
"setCacheKey": true
}
}
}
}timeout- Anfrage-Timeout in Millisekunden (Standard: 300000). Setzen Sie es auffalse, um es zu deaktivieren.chunkTimeout- Timeout in Millisekunden zwischen gestreamten Antwort-Chunks. Wenn nicht rechtzeitig ein Chunk eintrifft, wird die Anfrage abgebrochen.setCacheKey- Stellt sicher, dass für den festgelegten Anbieter immer ein Cache-Schlüssel gesetzt wird.
Sie können auch lokale Modelle konfigurieren. Erfahren Sie mehr.
Bildanhänge
OpenCode normalisiert Bildanhänge, bevor es sie an das Modell sendet. Standardmäßig werden Bilder skaliert, wenn sie 2000x2000 Pixel oder 5242880 Base64-Bytes überschreiten.
Konfigurieren Sie die Grenzwerte für Bildanhänge mit der Option attachment.image:
{
"$schema": "https://opencode.ai/config.json",
"attachment": {
"image": {
"auto_resize": true,
"max_width": 2000,
"max_height": 2000,
"max_base64_bytes": 5242880
}
}
}auto_resize- Skaliert Bilder, die die konfigurierten Grenzwerte überschreiten, vor Anbieteranfragen. Setzen Sie es auffalse, um übergroße Bilder stattdessen abzulehnen.max_width- Maximale Bildbreite in Pixel vor der Skalierung oder Ablehnung.max_height- Maximale Bildhöhe in Pixel vor der Skalierung oder Ablehnung.max_base64_bytes- Maximale codierte Bild-Payload-Größe. Dies ist die Base64-Payload-Größe, nicht die ursprüngliche Dateigröße.
Wenn ein Bild auch nach der Skalierung nicht passt, lässt OpenCode übergroße Tool-Ergebnis-Bilder weg oder schlägt bei übergroßen vom Benutzer bereitgestellten Bildern mit einem Bildgrößenfehler fehl.
Anbieterspezifische Optionen
Einige Anbieter unterstützen zusätzliche Konfigurationsoptionen über die generischen timeout- und apiKey-Einstellungen hinaus.
Amazon Bedrock
Amazon Bedrock unterstützt AWS-spezifische Konfiguration:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"amazon-bedrock": {
"options": {
"region": "us-east-1",
"profile": "my-aws-profile",
"endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com"
}
}
}
}region- AWS-Region für Bedrock (Standardwert ist die UmgebungsvariableAWS_REGIONoderus-east-1)profile- Benanntes AWS-Profil aus~/.aws/credentials(Standardwert ist die UmgebungsvariableAWS_PROFILE)endpoint- Benutzerdefinierte Endpunkt-URL für VPC-Endpunkte. Dies ist ein Alias für die generischebaseURL-Option unter Verwendung AWS-spezifischer Terminologie. Wenn beide angegeben sind, hatendpointVorrang.
Hinweis: Bearer-Tokens (
AWS_BEARER_TOKEN_BEDROCKoder/connect) haben Vorrang vor der profilbasierten Authentifizierung. Siehe Authentifizierungsrangfolge für Details.
Erfahren Sie mehr über die Amazon Bedrock-Konfiguration.
Themes
Legen Sie Ihr UI-Theme in tui.json fest.
{
"$schema": "https://opencode.ai/tui.json",
"theme": "tokyonight"
}Agenten
Sie können spezialisierte Agenten für bestimmte Aufgaben über die Option agent konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"code-reviewer": {
"description": "Reviews code for best practices and potential issues",
"model": "anthropic/claude-sonnet-4-5",
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
"tools": {
// Disable file modification tools for review-only agent
"write": false,
"edit": false,
},
},
},
}Sie können Agenten auch mithilfe von Markdown-Dateien in ~/.config/opencode/agents/ oder .opencode/agents/ definieren. Erfahren Sie hier mehr.
Standard-Agent
Sie können den Standard-Agenten über die Option default_agent festlegen. Dies bestimmt, welcher Agent verwendet wird, wenn keiner explizit angegeben ist.
{
"$schema": "https://opencode.ai/config.json",
"default_agent": "plan"
}Der Standard-Agent muss ein primärer Agent sein (kein Subagent). Dies kann ein integrierter Agent wie "build" oder "plan" sein oder ein von Ihnen definierter benutzerdefinierter Agent. Wenn der angegebene Agent nicht existiert oder ein Subagent ist, fällt OpenCode mit einer Warnung auf "build" zurück.
Diese Einstellung gilt für alle Schnittstellen: TUI, CLI (opencode run), Desktop-App und GitHub Action.
Sharing
Sie können die Share-Funktion über die Option share konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"share": "manual"
}Dies nimmt folgende Werte an:
"manual"- Manuelles Teilen über Befehle zulassen (Standard)"auto"- Neue Konversationen automatisch teilen"disabled"- Teilen vollständig deaktivieren
Standardmäßig ist das Teilen auf den manuellen Modus eingestellt, bei dem Sie Konversationen explizit mit dem Befehl /share teilen müssen.
Befehle
Sie können benutzerdefinierte Befehle für sich wiederholende Aufgaben über die Option command konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"command": {
"test": {
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
"description": "Run tests with coverage",
"agent": "build",
"model": "anthropic/claude-haiku-4-5",
},
"component": {
"template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.",
"description": "Create a new component",
},
},
}Sie können Befehle auch mithilfe von Markdown-Dateien in ~/.config/opencode/commands/ oder .opencode/commands/ definieren. Erfahren Sie hier mehr.
Tastenkürzel
Passen Sie die TUI-Tastaturkürzel in tui.json mit keybinds an.
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"command_list": "ctrl+p"
}
}keybinds wird mit den integrierten Standardwerten zusammengeführt, sodass Sie nur die Kürzel konfigurieren müssen, die Sie ändern möchten.
Snapshot
OpenCode verwendet Snapshots, um Dateiänderungen während Agentenoperationen zu verfolgen, was es Ihnen ermöglicht, Änderungen innerhalb einer Sitzung rückgängig zu machen und zurückzusetzen. Snapshots sind standardmäßig aktiviert.
Bei großen Repositories oder Projekten mit vielen Submodulen kann das Snapshot-System langsame Indizierung und erheblichen Festplattenverbrauch verursachen, da es alle Änderungen mit einem internen Git-Repository verfolgt. Sie können Snapshots über die Option snapshot deaktivieren.
{
"$schema": "https://opencode.ai/config.json",
"snapshot": false
}Beachten Sie, dass das Deaktivieren von Snapshots bedeutet, dass vom Agenten vorgenommene Änderungen nicht über die UI rückgängig gemacht werden können.
Autoupdate
OpenCode lädt beim Start automatisch alle neuen Updates herunter. Sie können dies über die Option autoupdate deaktivieren.
{
"$schema": "https://opencode.ai/config.json",
"autoupdate": false
}Wenn Sie keine Updates wünschen, aber benachrichtigt werden möchten, wenn eine neue Version verfügbar ist, setzen Sie autoupdate auf "notify".
Beachten Sie, dass dies nur funktioniert, wenn es nicht über einen Paketmanager wie Homebrew installiert wurde.
Formatter
Sie können Code-Formatter über die Option formatter aktivieren und konfigurieren. Lassen Sie sie weg, um Formatter deaktiviert zu halten.
{
"$schema": "https://opencode.ai/config.json",
"formatter": true
}Verwenden Sie ein Objekt, um die integrierten Formatter aktiviert zu lassen und gleichzeitig Überschreibungen oder benutzerdefinierte Formatter zu konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"formatter": {
"prettier": {
"disabled": true
},
"custom-prettier": {
"command": ["npx", "prettier", "--write", "$FILE"],
"environment": {
"NODE_ENV": "development"
},
"extensions": [".js", ".ts", ".jsx", ".tsx"]
}
}
}Erfahren Sie hier mehr über Formatter.
LSP-Server
Sie können LSP-Server über die Option lsp aktivieren und konfigurieren. Lassen Sie sie weg, um LSP deaktiviert zu halten.
{
"$schema": "https://opencode.ai/config.json",
"lsp": true
}Verwenden Sie ein Objekt, um die integrierten Server aktiviert zu lassen und gleichzeitig Überschreibungen oder benutzerdefinierte LSP-Server zu konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"typescript": {
"disabled": true
}
}
}Erfahren Sie hier mehr über LSP-Server.
Berechtigungen
Standardmäßig erlaubt opencode alle Operationen, ohne eine explizite Genehmigung zu erfordern. Sie können dies über die Option permission ändern.
Um beispielsweise sicherzustellen, dass die Tools edit und bash eine Benutzergenehmigung erfordern:
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "ask",
"bash": "ask"
}
}Erfahren Sie hier mehr über Berechtigungen.
Compaction
Sie können das Verhalten der Kontextkomprimierung über die Option compaction steuern.
{
"$schema": "https://opencode.ai/config.json",
"compaction": {
"auto": true,
"prune": true,
"reserved": 10000
}
}auto- Komprimiert die Sitzung automatisch, wenn der Kontext voll ist (Standard:true).prune- Entfernt alte Tool-Ausgaben, um Tokens zu sparen (Standard:true).reserved- Token-Puffer für die Komprimierung. Lässt genügend Fenster, um einen Überlauf während der Komprimierung zu vermeiden
Watcher
Sie können die Ignoriermuster des Dateiwächters über die Option watcher konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"watcher": {
"ignore": ["node_modules/**", "dist/**", ".git/**"]
}
}Die Muster folgen der Glob-Syntax. Verwenden Sie dies, um störende Verzeichnisse von der Dateiüberwachung auszuschließen.
MCP-Server
Sie können die MCP-Server, die Sie verwenden möchten, über die Option mcp konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {}
}Plugins
Plugins erweitern OpenCode mit benutzerdefinierten Tools, Hooks und Integrationen.
Platzieren Sie Plugin-Dateien in .opencode/plugins/ oder ~/.config/opencode/plugins/. Sie können Plugins auch über die Option plugin aus npm laden.
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-helicone-session", "@my-org/custom-plugin"]
}Anweisungen
Sie können die Anweisungen für das von Ihnen verwendete Modell über die Option instructions konfigurieren.
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
}Dies nimmt ein Array von Pfaden und Glob-Mustern zu Anweisungsdateien an. Erfahren Sie hier mehr über Regeln.
Deaktivierte Anbieter
Sie können Anbieter, die automatisch geladen werden, über die Option disabled_providers deaktivieren. Dies ist nützlich, wenn Sie verhindern möchten, dass bestimmte Anbieter geladen werden, selbst wenn ihre Anmeldedaten verfügbar sind.
{
"$schema": "https://opencode.ai/config.json",
"disabled_providers": ["openai", "gemini"]
}Hinweis: Die Option
disabled_providershat Vorrang vorenabled_providers.
Die Option disabled_providers akzeptiert ein Array von Anbieter-IDs. Wenn ein Anbieter deaktiviert ist:
- Wird er nicht geladen, selbst wenn Umgebungsvariablen gesetzt sind.
- Wird er nicht geladen, selbst wenn API-Schlüssel über den Befehl
/connectkonfiguriert sind. - Erscheinen die Modelle des Anbieters nicht in der Modellauswahlliste.
Aktivierte Anbieter
Sie können eine Positivliste von Anbietern über die Option enabled_providers angeben. Wenn gesetzt, werden nur die angegebenen Anbieter aktiviert und alle anderen ignoriert.
{
"$schema": "https://opencode.ai/config.json",
"enabled_providers": ["anthropic", "openai"]
}Dies ist nützlich, wenn Sie OpenCode auf die Verwendung bestimmter Anbieter beschränken möchten, anstatt sie einzeln zu deaktivieren.
Hinweis: Die Option
disabled_providershat Vorrang vorenabled_providers.
Wenn ein Anbieter sowohl in enabled_providers als auch in disabled_providers erscheint, hat disabled_providers aus Gründen der Abwärtskompatibilität Vorrang.
Experimentell
Der Schlüssel experimental enthält Optionen, die sich in aktiver Entwicklung befinden.
{
"$schema": "https://opencode.ai/config.json",
"experimental": {}
}Achtung: Experimentelle Optionen sind nicht stabil. Sie können sich ohne Vorankündigung ändern oder entfernt werden.
Variablen
Sie können Variablensubstitution in Ihren Konfigurationsdateien verwenden, um auf Umgebungsvariablen und Dateiinhalte zu verweisen.
Umgebungsvariablen
Verwenden Sie {env:VARIABLE_NAME}, um Umgebungsvariablen zu ersetzen:
{
"$schema": "https://opencode.ai/config.json",
"model": "{env:OPENCODE_MODEL}",
"provider": {
"anthropic": {
"models": {},
"options": {
"apiKey": "{env:ANTHROPIC_API_KEY}"
}
}
}
}Wenn die Umgebungsvariable nicht gesetzt ist, wird sie durch eine leere Zeichenkette ersetzt.
Dateien
Verwenden Sie {file:path/to/file}, um den Inhalt einer Datei zu ersetzen:
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["./custom-instructions.md"],
"provider": {
"openai": {
"options": {
"apiKey": "{file:~/.secrets/openai-key}"
}
}
}
}Dateipfade können sein:
- Relativ zum Verzeichnis der Konfigurationsdatei
- Oder absolute Pfade, die mit
/oder~beginnen
Diese sind nützlich für:
- Das Aufbewahren sensibler Daten wie API-Schlüssel in separaten Dateien.
- Das Einbinden großer Anweisungsdateien, ohne Ihre Konfiguration zu überladen.
- Das Teilen gemeinsamer Konfigurationsausschnitte über mehrere Konfigurationsdateien hinweg.