Deutsch
Dokumentation
Konfiguration

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).

opencode.jsonc
{
  "$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):

  1. Remote-Konfiguration (aus .well-known/opencode ) - organisatorische Standardwerte
  2. Globale Konfiguration ( ~/.config/opencode/opencode.json ) - Benutzereinstellungen
  3. Benutzerdefinierte Konfiguration ( OPENCODE_CONFIG-Umgebungsvariable) - benutzerdefinierte Überschreibungen
  4. Projektkonfiguration ( opencode.json im Projekt) - projektspezifische Einstellungen
  5. .opencode-Verzeichnisse - Agenten, Befehle, Plugins
  6. Inline-Konfiguration ( OPENCODE_CONFIG_CONTENT-Umgebungsvariable) - Laufzeit-Überschreibungen
  7. Verwaltete Konfigurationsdateien ( /Library/Application Support/opencode/ auf macOS) - administratorgesteuert
  8. 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 .opencode und ~/.config/opencode verwenden Pluralnamen für Unterverzeichnisse: agents/, commands/, modes/, plugins/, skills/, tools/ und themes/. 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:

Remote-Konfiguration aus .well-known/opencode
{
  "mcp": {
    "jira": {
      "type": "remote",
      "url": "https://jira.example.com/mcp",
      "enabled": false
    }
  }
}

Sie können bestimmte Server in Ihrer lokalen Konfiguration aktivieren:

opencode.json
{
  "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:

PlattformPfad
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:

  1. /Library/Managed Preferences/<user>/ai.opencode.managed.plist
  2. /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 .mobileconfig zu Ihrem gitops-Repo unter mdm.macos_settings.custom_settings hinzu und führen Sie fleetctl apply aus

Ü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 config

Alle 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.

tui.json
{
  "$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.

opencode.json
{
  "$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. Wenn mdns aktiviert ist und kein Hostname gesetzt ist, ist der Standardwert 0.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 ist opencode.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.

opencode.json
{
  "$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.

opencode.json
{
  "$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.

opencode.json
{
  "$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:

opencode.json
{
  "$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 auf false, 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:

opencode.json
{
  "$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 auf false, 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:

opencode.json
{
  "$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 Umgebungsvariable AWS_REGION oder us-east-1 )
  • profile - Benanntes AWS-Profil aus ~/.aws/credentials (Standardwert ist die Umgebungsvariable AWS_PROFILE)
  • endpoint - Benutzerdefinierte Endpunkt-URL für VPC-Endpunkte. Dies ist ein Alias für die generische baseURL-Option unter Verwendung AWS-spezifischer Terminologie. Wenn beide angegeben sind, hat endpoint Vorrang.

Hinweis: Bearer-Tokens (AWS_BEARER_TOKEN_BEDROCK oder /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.

tui.json
{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "tokyonight"
}

Erfahren Sie hier mehr.


Agenten

Sie können spezialisierte Agenten für bestimmte Aufgaben über die Option agent konfigurieren.

opencode.jsonc
{
  "$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.

opencode.json
{
  "$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.

opencode.json
{
  "$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.

opencode.jsonc
{
  "$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.

tui.json
{
  "$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.

Erfahren Sie hier mehr.


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.

opencode.json
{
  "$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.

opencode.json
{
  "$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.

opencode.json
{
  "$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.

opencode.json
{
  "$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.

opencode.json
{
  "$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.

opencode.json
{
  "$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:

opencode.json
{
  "$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.

opencode.json
{
  "$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.

opencode.json
{
  "$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.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {}
}

Erfahren Sie hier mehr.


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.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["opencode-helicone-session", "@my-org/custom-plugin"]
}

Erfahren Sie hier mehr.


Anweisungen

Sie können die Anweisungen für das von Ihnen verwendete Modell über die Option instructions konfigurieren.

opencode.json
{
  "$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.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "disabled_providers": ["openai", "gemini"]
}

Hinweis: Die Option disabled_providers hat Vorrang vor enabled_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 /connect konfiguriert 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.

opencode.json
{
  "$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_providers hat Vorrang vor enabled_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.

opencode.json
{
  "$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:

opencode.json
{
  "$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:

opencode.json
{
  "$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.