CLI commands

Konfiguration

Konfigurationshilfen für nicht interaktive Änderungen in openclaw.json: Werte per Pfad abrufen/festlegen/patchen/aufheben/datei/schema/validieren und die aktive Konfigurationsdatei ausgeben. Ohne Unterbefehl ausführen, um den Konfigurationsassistenten zu öffnen (entspricht openclaw configure).

Stammoptionen

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc2VjdGlvbiA8c2VjdGlvbg " type="string"> Wiederholbarer Filter für Abschnitte der geführten Einrichtung, wenn Sie openclaw config ohne Unterbefehl ausführen.

Unterstützte geführte Abschnitte: workspace, model, web, gateway, daemon, channels, plugins, skills, health.

Beispiele

bash
openclaw config fileopenclaw config --section modelopenclaw config --section gateway --section daemonopenclaw config schemaopenclaw config get browser.executablePathopenclaw config set browser.executablePath "/usr/bin/google-chrome"openclaw config set browser.profiles.work.executablePath "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"openclaw config set agents.defaults.heartbeat.every "2h"openclaw config set 'agents.list[0].tools.exec.node' "node-id-or-name"openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeopenclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKENopenclaw config set secrets.providers.vaultfile --provider-source file --provider-path /etc/openclaw/secrets.json --provider-mode jsonopenclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config unset plugins.entries.brave.config.webSearch.apiKeyopenclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN --dry-runopenclaw config validateopenclaw config validate --json

config schema

Gibt das generierte JSON-Schema für openclaw.json als JSON auf stdout aus.

Was es enthält
  • Das aktuelle Stamm-Konfigurationsschema sowie ein $schema-Stringfeld auf Stammebene für Editor-Werkzeuge.
  • Dokumentationsmetadaten title und description, die von der Control UI verwendet werden.
  • Verschachtelte Objekt-, Platzhalter- (*) und Array-Element-Knoten ([]) erben dieselben Metadaten title / description, wenn passende Felddokumentation vorhanden ist.
  • Auch anyOf- / oneOf- / allOf-Zweige erben dieselben Dokumentationsmetadaten, wenn passende Felddokumentation vorhanden ist.
  • Bestmögliche Live-Metadaten für Plugin- und Kanal-Schemata, wenn Laufzeitmanifeste geladen werden können.
  • Ein sauberes Fallback-Schema, selbst wenn die aktuelle Konfiguration ungültig ist.
Zugehörige Laufzeit-RPC

config.schema.lookup gibt einen normalisierten Konfigurationspfad mit einem flachen Schemaknoten (title, description, type, enum, const, übliche Grenzen), passenden UI-Hinweis-Metadaten und direkten Kindzusammenfassungen zurück. Verwenden Sie dies für pfadbezogene Detailansichten in der Control UI oder in benutzerdefinierten Clients.

bash
openclaw config schema

Leiten Sie die Ausgabe in eine Datei um, wenn Sie sie mit anderen Werkzeugen prüfen oder validieren möchten:

bash
openclaw config schema > openclaw.schema.json

Pfade

Pfade verwenden Punkt- oder Klammernotation. Setzen Sie Pfade in Klammernotation in Shell-Beispielen in Anführungszeichen, damit Shells wie zsh [0] nicht als Glob erweitern, bevor OpenClaw den Pfad erhält:

bash
openclaw config get agents.defaults.workspaceopenclaw config get 'agents.list[0].id'

Verwenden Sie den Index der Agent-Liste, um einen bestimmten Agent gezielt anzusprechen:

bash
openclaw config get agents.listopenclaw config set 'agents.list[1].tools.exec.node' "node-id-or-name"

Werte

Werte werden nach Möglichkeit als JSON5 geparst; andernfalls werden sie als Strings behandelt. Verwenden Sie --strict-json, um standardkonformes JSON-Parsing ohne String-Fallback zu erzwingen. --json wird weiterhin als Legacy-Alias für --strict-json unterstützt.

bash
openclaw config set agents.defaults.heartbeat.every "0m"openclaw config set gateway.port 19001 --strict-jsonopenclaw config set channels.whatsapp.groups '["*"]' --strict-json

Wenn --strict-json aktiviert ist, wird JSON5-spezifische Syntax wie Kommentare, nachgestellte Kommas oder nicht in Anführungszeichen gesetzte Objektschlüssel abgelehnt. Lassen Sie --strict-json weg, um JSON5-Wert-Parsing mit Raw-String-Fallback zu verwenden.

config get <path> --json gibt den Rohwert als JSON statt als terminalformatierten Text aus.

Verwenden Sie --merge, wenn Sie diesen Maps Einträge hinzufügen:

bash
openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeopenclaw config set models.providers.ollama.models '[{"id":"llama3.2","name":"Llama 3.2"}]' --strict-json --merge

Verwenden Sie --replace nur, wenn der bereitgestellte Wert absichtlich zum vollständigen Zielwert werden soll.

config set-Modi

openclaw config set unterstützt vier Zuweisungsarten:

Wertmodus

bash
openclaw config set <path> <value>

SecretRef-Builder-Modus

bash
openclaw config set channels.discord.token \  --ref-provider default \  --ref-source env \  --ref-id DISCORD_BOT_TOKEN

Provider-Builder-Modus

Der Provider-Builder-Modus zielt nur auf Pfade secrets.providers.<alias>:

bash
openclaw config set secrets.providers.vault \  --provider-source exec \  --provider-command /usr/local/bin/openclaw-vault \  --provider-arg read \  --provider-arg openai/api-key \  --provider-timeout-ms 5000

Batch-Modus

bash
openclaw config set --batch-json '[  {    "path": "secrets.providers.default",    "provider": { "source": "env" }  },  {    "path": "channels.discord.token",    "ref": { "source": "env", "provider": "default", "id": "DISCORD_BOT_TOKEN" }  }]'
bash
openclaw config set --batch-file ./config-set.batch.json --dry-run

Batch-Parsing verwendet immer die Batch-Nutzdaten (--batch-json/--batch-file) als maßgebliche Quelle. --strict-json / --json ändern das Batch-Parsing-Verhalten nicht.

config patch

Verwenden Sie config patch, wenn Sie einen konfigurationsförmigen Patch einfügen oder per Pipe übergeben möchten, statt viele pfadbasierte config set-Befehle auszuführen. Die Eingabe ist ein JSON5-Objekt. Objekte werden rekursiv zusammengeführt, Arrays und skalare Werte ersetzen den Zielwert, und null löscht den Zielpfad.

bash
openclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config patch --file ./openclaw.patch.json5

Sie können einen Patch auch über stdin per Pipe übergeben, was für Remote-Setup-Skripte nützlich ist:

bash
ssh openclaw-host 'openclaw config patch --stdin --dry-run' < ./openclaw.patch.json5ssh openclaw-host 'openclaw config patch --stdin' < ./openclaw.patch.json5

Beispiel-Patch:

json5
{  channels: {    slack: {      enabled: true,      mode: "socket",      botToken: { source: "env", provider: "default", id: "SLACK_BOT_TOKEN" },      appToken: { source: "env", provider: "default", id: "SLACK_APP_TOKEN" },      groupPolicy: "open",      requireMention: false,    },    discord: {      enabled: true,      token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" },      dmPolicy: "disabled",      dm: { enabled: false },      groupPolicy: "allowlist",    },  },  agents: {    defaults: {      model: { primary: "openai/gpt-5.5" },      models: {        "openai/gpt-5.5": { params: { fastMode: true } },      },    },  },}

Verwenden Sie --replace-path <path>, wenn ein Objekt oder Array exakt zum bereitgestellten Wert werden soll, statt rekursiv gepatcht zu werden:

bash
openclaw config patch --file ./discord.patch.json5 --replace-path 'channels.discord.guilds["123"].channels'

--dry-run führt Schema- und SecretRef-Auflösbarkeitsprüfungen aus, ohne zu schreiben. Exec-gestützte SecretRefs werden während des Dry-Runs standardmäßig übersprungen; fügen Sie --allow-exec hinzu, wenn der Dry-Run absichtlich Provider-Befehle ausführen soll.

Der JSON-Pfad-/Wertmodus wird weiterhin sowohl für SecretRefs als auch für Provider unterstützt:

bash
openclaw config set channels.discord.token \  '{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}' \  --strict-json openclaw config set secrets.providers.vaultfile \  '{"source":"file","path":"/etc/openclaw/secrets.json","mode":"json"}' \  --strict-json

Provider-Builder-Flags

Provider-Builder-Ziele müssen secrets.providers.<alias> als Pfad verwenden.

Allgemeine Flags
  • --provider-source <env|file|exec>
  • --provider-timeout-ms <ms> (file, exec)
Env-Provider (--provider-source env)
  • --provider-allowlist &lt;ENV_VAR&gt; (wiederholbar)
Datei-Provider (--provider-source file)
  • --provider-path <path> (erforderlich)
  • --provider-mode <singleValue|json>
  • --provider-max-bytes <bytes>
  • --provider-allow-insecure-path
Exec-Provider (--provider-source exec)
  • --provider-command <path> (erforderlich)
  • --provider-arg <arg> (wiederholbar)
  • --provider-no-output-timeout-ms <ms>
  • --provider-max-output-bytes <bytes>
  • --provider-json-only
  • --provider-env &lt;KEY=VALUE&gt; (wiederholbar)
  • --provider-pass-env &lt;ENV_VAR&gt; (wiederholbar)
  • --provider-trusted-dir <path> (wiederholbar)
  • --provider-allow-insecure-path
  • --provider-allow-symlink-command

Beispiel für gehärteten Exec-Provider:

bash
openclaw config set secrets.providers.vault \  --provider-source exec \  --provider-command /usr/local/bin/openclaw-vault \  --provider-arg read \  --provider-arg openai/api-key \  --provider-json-only \  --provider-pass-env VAULT_TOKEN \  --provider-trusted-dir /usr/local/bin \  --provider-timeout-ms 5000

Dry-Run

Verwenden Sie --dry-run, um Änderungen zu validieren, ohne openclaw.json zu schreiben.

bash
openclaw config set channels.discord.token \  --ref-provider default \  --ref-source env \  --ref-id DISCORD_BOT_TOKEN \  --dry-run openclaw config set channels.discord.token \  --ref-provider default \  --ref-source env \  --ref-id DISCORD_BOT_TOKEN \  --dry-run \  --json openclaw config set channels.discord.token \  --ref-provider vault \  --ref-source exec \  --ref-id discord/token \  --dry-run \  --allow-exec
Dry-run-Verhalten
  • Builder-Modus: führt SecretRef-Auflösbarkeitsprüfungen für geänderte Refs/Provider aus.
  • JSON-Modus (--strict-json, --json oder Batch-Modus): führt Schemavalidierung plus SecretRef-Auflösbarkeitsprüfungen aus.
  • Die Policy-Validierung läuft auch für bekannte nicht unterstützte SecretRef-Zielflächen.
  • Policy-Prüfungen bewerten die vollständige Konfiguration nach der Änderung, sodass Schreibvorgänge auf übergeordnete Objekte (zum Beispiel das Setzen von hooks als Objekt) die Validierung nicht unterstützter Flächen nicht umgehen können.
  • Exec-SecretRef-Prüfungen werden während eines Dry-run standardmäßig übersprungen, um Seiteneffekte durch Befehle zu vermeiden.
  • Verwenden Sie --allow-exec mit --dry-run, um Exec-SecretRef-Prüfungen explizit zu aktivieren (dies kann Provider-Befehle ausführen).
  • --allow-exec gilt nur für Dry-run und führt zu einem Fehler, wenn es ohne --dry-run verwendet wird.
`--dry-run --json`-Felder

--dry-run --json gibt einen maschinenlesbaren Bericht aus:

  • ok: ob der Dry-run bestanden wurde
  • operations: Anzahl der ausgewerteten Zuweisungen
  • checks: ob Schema-/Auflösbarkeitsprüfungen ausgeführt wurden
  • checks.resolvabilityComplete: ob Auflösbarkeitsprüfungen vollständig ausgeführt wurden (false, wenn Exec-Refs übersprungen werden)
  • refsChecked: Anzahl der während des Dry-run tatsächlich aufgelösten Refs
  • skippedExecRefs: Anzahl der übersprungenen Exec-Refs, weil --allow-exec nicht gesetzt war
  • errors: strukturierte Fehler zu fehlenden Pfaden, Schema oder Auflösbarkeit, wenn ok=false

JSON-Ausgabeform

json5
{  ok: boolean,  operations: number,  configPath: string,  inputModes: ["value" | "json" | "builder" | "unset", ...],  checks: {    schema: boolean,    resolvability: boolean,    resolvabilityComplete: boolean,  },  refsChecked: number,  skippedExecRefs: number,  errors?: [    {      kind: "missing-path" | "schema" | "resolvability",      message: string,      ref?: string, // present for resolvability errors    },  ],}

Erfolgsbeispiel

json
{  "ok": true,  "operations": 1,  "configPath": "~/.openclaw/openclaw.json",  "inputModes": ["builder"],  "checks": {    "schema": false,    "resolvability": true,    "resolvabilityComplete": true  },  "refsChecked": 1,  "skippedExecRefs": 0}

Fehlerbeispiel

json
{  "ok": false,  "operations": 1,  "configPath": "~/.openclaw/openclaw.json",  "inputModes": ["builder"],  "checks": {    "schema": false,    "resolvability": true,    "resolvabilityComplete": true  },  "refsChecked": 1,  "skippedExecRefs": 0,  "errors": [    {      "kind": "resolvability",      "message": "Error: Environment variable \"MISSING_TEST_SECRET\" is not set.",      "ref": "env:default:MISSING_TEST_SECRET"    }  ]}
Wenn der Dry-run fehlschlägt
  • config schema validation failed: Ihre Konfigurationsform nach der Änderung ist ungültig; korrigieren Sie Pfad/Wert oder die Objektform von Provider/Ref.
  • Config policy validation failed: unsupported SecretRef usage: verschieben Sie diese Zugangsdaten zurück in Klartext-/String-Eingabe und behalten Sie SecretRefs nur auf unterstützten Flächen.
  • SecretRef assignment(s) could not be resolved: der referenzierte Provider/Ref kann derzeit nicht aufgelöst werden (fehlende Umgebungsvariable, ungültiger Dateizeiger, Exec-Provider-Fehler oder Provider-/Quellenkonflikt).
  • Dry run note: skipped <n> exec SecretRef resolvability check(s): Dry-run hat Exec-Refs übersprungen; führen Sie erneut mit --allow-exec aus, wenn Sie Exec-Auflösbarkeitsvalidierung benötigen.
  • Korrigieren Sie im Batch-Modus fehlschlagende Einträge und führen Sie --dry-run erneut aus, bevor Sie schreiben.

Schreibsicherheit

openclaw config set und andere OpenClaw-eigene Konfigurationsschreiber validieren die vollständige Konfiguration nach der Änderung, bevor sie sie auf die Festplatte schreiben. Wenn die neue Nutzlast die Schemavalidierung nicht besteht oder wie ein destruktives Überschreiben aussieht, bleibt die aktive Konfiguration unverändert und die abgelehnte Nutzlast wird daneben als openclaw.json.rejected.* gespeichert.

Bevorzugen Sie CLI-Schreibvorgänge für kleine Änderungen:

bash
openclaw config set gateway.reload.mode hybrid --dry-runopenclaw config set gateway.reload.mode hybridopenclaw config validate

Wenn ein Schreibvorgang abgelehnt wird, prüfen Sie die gespeicherte Nutzlast und korrigieren Sie die vollständige Konfigurationsform:

bash
CONFIG="$(openclaw config file)"ls -lt "$CONFIG".rejected.* 2>/dev/null | headopenclaw config validate

Direkte Schreibvorgänge mit einem Editor sind weiterhin erlaubt, aber der laufende Gateway behandelt sie als nicht vertrauenswürdig, bis sie validiert wurden. Ungültige direkte Änderungen lassen den Start fehlschlagen oder werden beim Hot Reload übersprungen; Gateway schreibt openclaw.json nicht neu. Führen Sie openclaw doctor --fix aus, um vorangestellte/überschriebene Konfiguration zu reparieren oder die letzte als gut bekannte Kopie wiederherzustellen. Siehe Gateway-Fehlerbehebung.

Wiederherstellung ganzer Dateien ist der Doctor-Reparatur vorbehalten. Plugin-Schemaänderungen oder minHostVersion-Abweichungen bleiben deutlich sichtbar, statt unabhängige Benutzereinstellungen wie Modelle, Provider, Auth-Profile, Kanäle, Gateway-Exponierung, Tools, Speicher, Browser oder Cron-Konfiguration zurückzusetzen.

Unterbefehle

  • config file: Gibt den aktiven Konfigurationsdateipfad aus (aufgelöst aus OPENCLAW_CONFIG_PATH oder dem Standardspeicherort). Der Pfad sollte eine reguläre Datei benennen, keinen Symlink.

Starten Sie den Gateway nach Änderungen neu.

Validieren

Validieren Sie die aktuelle Konfiguration gegen das aktive Schema, ohne den Gateway zu starten.

bash
openclaw config validateopenclaw config validate --json

Nachdem openclaw config validate erfolgreich ist, können Sie die lokale TUI verwenden, damit ein eingebetteter Agent die aktive Konfiguration mit der Dokumentation vergleicht, während Sie jede Änderung im selben Terminal validieren:

bash
openclaw chat

Dann innerhalb der TUI:

text
!openclaw config file!openclaw docs gateway auth token secretref!openclaw config validate!openclaw doctor

Typische Reparaturschleife:

  • Mit Dokumentation vergleichen

    Bitten Sie den Agent, Ihre aktuelle Konfiguration mit der relevanten Dokumentationsseite zu vergleichen und die kleinste Korrektur vorzuschlagen.

  • Gezielte Änderungen anwenden

    Wenden Sie gezielte Änderungen mit openclaw config set oder openclaw configure an.

  • Erneut validieren

    Führen Sie openclaw config validate nach jeder Änderung erneut aus.

  • Doctor für Laufzeitprobleme

    Wenn die Validierung erfolgreich ist, die Laufzeit aber weiterhin fehlerhaft ist, führen Sie openclaw doctor oder openclaw doctor --fix aus, um Hilfe bei Migration und Reparatur zu erhalten.

  • Verwandt

    Was this useful?
    On this page

    On this page