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
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 --jsonconfig 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
titleunddescription, die von der Control UI verwendet werden. - Verschachtelte Objekt-, Platzhalter- (
*) und Array-Element-Knoten ([]) erben dieselben Metadatentitle/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.
openclaw config schemaLeiten Sie die Ausgabe in eine Datei um, wenn Sie sie mit anderen Werkzeugen prüfen oder validieren möchten:
openclaw config schema > openclaw.schema.jsonPfade
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:
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:
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.
openclaw config set agents.defaults.heartbeat.every "0m"openclaw config set gateway.port 19001 --strict-jsonopenclaw config set channels.whatsapp.groups '["*"]' --strict-jsonWenn --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:
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 --mergeVerwenden 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
openclaw config set <path> <value>SecretRef-Builder-Modus
openclaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKENProvider-Builder-Modus
Der Provider-Builder-Modus zielt nur auf Pfade secrets.providers.<alias>:
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 5000Batch-Modus
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" } }]'openclaw config set --batch-file ./config-set.batch.json --dry-runBatch-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.
openclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config patch --file ./openclaw.patch.json5Sie können einen Patch auch über stdin per Pipe übergeben, was für Remote-Setup-Skripte nützlich ist:
ssh openclaw-host 'openclaw config patch --stdin --dry-run' < ./openclaw.patch.json5ssh openclaw-host 'openclaw config patch --stdin' < ./openclaw.patch.json5Beispiel-Patch:
{ 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:
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:
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-jsonProvider-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 <ENV_VAR>(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 <KEY=VALUE>(wiederholbar)--provider-pass-env <ENV_VAR>(wiederholbar)--provider-trusted-dir <path>(wiederholbar)--provider-allow-insecure-path--provider-allow-symlink-command
Beispiel für gehärteten Exec-Provider:
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 5000Dry-Run
Verwenden Sie --dry-run, um Änderungen zu validieren, ohne openclaw.json zu schreiben.
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-execDry-run-Verhalten
- Builder-Modus: führt SecretRef-Auflösbarkeitsprüfungen für geänderte Refs/Provider aus.
- JSON-Modus (
--strict-json,--jsonoder 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
hooksals 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-execmit--dry-run, um Exec-SecretRef-Prüfungen explizit zu aktivieren (dies kann Provider-Befehle ausführen). --allow-execgilt nur für Dry-run und führt zu einem Fehler, wenn es ohne--dry-runverwendet wird.
`--dry-run --json`-Felder
--dry-run --json gibt einen maschinenlesbaren Bericht aus:
ok: ob der Dry-run bestanden wurdeoperations: Anzahl der ausgewerteten Zuweisungenchecks: ob Schema-/Auflösbarkeitsprüfungen ausgeführt wurdenchecks.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 RefsskippedExecRefs: Anzahl der übersprungenen Exec-Refs, weil--allow-execnicht gesetzt warerrors: strukturierte Fehler zu fehlenden Pfaden, Schema oder Auflösbarkeit, wennok=false
JSON-Ausgabeform
{ 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
{ "ok": true, "operations": 1, "configPath": "~/.openclaw/openclaw.json", "inputModes": ["builder"], "checks": { "schema": false, "resolvability": true, "resolvabilityComplete": true }, "refsChecked": 1, "skippedExecRefs": 0}Fehlerbeispiel
{ "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-execaus, wenn Sie Exec-Auflösbarkeitsvalidierung benötigen.- Korrigieren Sie im Batch-Modus fehlschlagende Einträge und führen Sie
--dry-runerneut 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:
openclaw config set gateway.reload.mode hybrid --dry-runopenclaw config set gateway.reload.mode hybridopenclaw config validateWenn ein Schreibvorgang abgelehnt wird, prüfen Sie die gespeicherte Nutzlast und korrigieren Sie die vollständige Konfigurationsform:
CONFIG="$(openclaw config file)"ls -lt "$CONFIG".rejected.* 2>/dev/null | headopenclaw config validateDirekte 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 ausOPENCLAW_CONFIG_PATHoder 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.
openclaw config validateopenclaw config validate --jsonNachdem 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:
openclaw chatDann innerhalb der TUI:
!openclaw config file!openclaw docs gateway auth token secretref!openclaw config validate!openclaw doctorTypische 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.