CLI commands

Configuratie

Configuratiehelpers voor niet-interactieve bewerkingen in openclaw.json: waarden opvragen/instellen/patchen/verwijderen, bestanden/schema's/waarden valideren per pad en het actieve configuratiebestand afdrukken. Voer uit zonder subopdracht om de configuratiewizard te openen (hetzelfde als openclaw configure).

Hoofdopties

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc2VjdGlvbiA8c2VjdGlvbg " type="string"> Herhaalbaar sectiefilter voor begeleide configuratie wanneer je openclaw config zonder subopdracht uitvoert.

Ondersteunde begeleide secties: workspace, model, web, gateway, daemon, channels, plugins, skills, health.

Voorbeelden

openclaw config file
openclaw config --section model
openclaw config --section gateway --section daemon
openclaw config schema
openclaw config get browser.executablePath
openclaw 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 --merge
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN
openclaw config set secrets.providers.vaultfile --provider-source file --provider-path /etc/openclaw/secrets.json --provider-mode json
openclaw config patch --file ./openclaw.patch.json5 --dry-run
openclaw config unset plugins.entries.brave.config.webSearch.apiKey
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN --dry-run
openclaw config validate
openclaw config validate --json

config schema

Druk het gegenereerde JSON-schema voor openclaw.json af naar stdout als JSON.

Wat het bevat
  • Het huidige root-configuratieschema, plus een root-veld $schema als tekenreeks voor editortooling.
  • Documentatiemetadata title en description voor velden, gebruikt door de Control UI.
  • Geneste object-, wildcard- (*) en array-item-knooppunten ([]) erven dezelfde metadata title / description wanneer overeenkomende velddocumentatie bestaat.
  • anyOf / oneOf / allOf-takken erven ook dezelfde documentatiemetadata wanneer overeenkomende velddocumentatie bestaat.
  • Best-effort live schema-metadata voor plugins en kanalen wanneer runtime-manifesten kunnen worden geladen.
  • Een schoon fallback-schema, zelfs wanneer de huidige configuratie ongeldig is.
Gerelateerde runtime-RPC

config.schema.lookup retourneert één genormaliseerd configuratiepad met een oppervlakkig schema-knooppunt (title, description, type, enum, const, algemene grenzen), overeenkomende metadata voor UI-hints en directe samenvattingen van child-knooppunten. Gebruik dit voor padgerichte drill-down in Control UI of aangepaste clients.

openclaw config schema

Pipe het naar een bestand wanneer je het met andere tools wilt inspecteren of valideren:

openclaw config schema > openclaw.schema.json

Paden

Paden gebruiken punt- of haakjesnotatie:

openclaw config get agents.defaults.workspace
openclaw config get agents.list[0].id

Gebruik de index van de agentlijst om een specifieke agent te targeten:

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

Waarden

Waarden worden waar mogelijk geparseerd als JSON5; anders worden ze behandeld als tekenreeksen. Gebruik --strict-json om JSON5-parsing te vereisen. --json blijft ondersteund als legacy-alias.

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

config get <path> --json drukt de ruwe waarde af als JSON in plaats van terminal-geformatteerde tekst.

Gebruik --merge wanneer je items aan die maps toevoegt:

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

Gebruik --replace alleen wanneer je bewust wilt dat de opgegeven waarde de volledige doelwaarde wordt.

config set-modi

openclaw config set ondersteunt vier toewijzingsstijlen:

Waardemodus

openclaw config set <path> <value>

SecretRef-buildermodus

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

Provider-buildermodus

Provider-buildermodus target alleen paden 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 5000

Batchmodus

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-run

Batchparsing gebruikt altijd de batchpayload (--batch-json/--batch-file) als bron van waarheid. --strict-json / --json veranderen het batchparsinggedrag niet.

config patch

Gebruik config patch wanneer je een configuratievormige patch wilt plakken of pipen in plaats van veel padgebaseerde config set-opdrachten uit te voeren. De invoer is een JSON5-object. Objecten worden recursief samengevoegd, arrays en scalaire waarden vervangen de doelwaarde, en null verwijdert het doelpad.

openclaw config patch --file ./openclaw.patch.json5 --dry-run
openclaw config patch --file ./openclaw.patch.json5

Je kunt ook een patch via stdin pipen, wat nuttig is voor scripts voor externe setup:

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

Voorbeeldpatch:

{
  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 } },
      },
    },
  },
}

Gebruik --replace-path <path> wanneer één object of array exact de opgegeven waarde moet worden in plaats van recursief te worden gepatcht:

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

--dry-run voert schema- en SecretRef-oplosbaarheidscontroles uit zonder te schrijven. Exec-backed SecretRefs worden standaard overgeslagen tijdens dry-run; voeg --allow-exec toe wanneer je bewust wilt dat dry-run provideropdrachten uitvoert.

JSON-pad-/waardemodus blijft ondersteund voor zowel SecretRefs als providers:

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-buildervlaggen

Provider-builderdoelen moeten secrets.providers.<alias> als pad gebruiken.

Algemene vlaggen
  • --provider-source <env|file|exec>
  • --provider-timeout-ms <ms> (file, exec)
Env-provider (--provider-source env)
  • --provider-allowlist &lt;ENV_VAR&gt; (herhaalbaar)
Bestandsprovider (--provider-source file)
  • --provider-path <path> (vereist)
  • --provider-mode <singleValue|json>
  • --provider-max-bytes <bytes>
  • --provider-allow-insecure-path
Exec-provider (--provider-source exec)
  • --provider-command <path> (vereist)
  • --provider-arg <arg> (herhaalbaar)
  • --provider-no-output-timeout-ms <ms>
  • --provider-max-output-bytes <bytes>
  • --provider-json-only
  • --provider-env &lt;KEY=VALUE&gt; (herhaalbaar)
  • --provider-pass-env &lt;ENV_VAR&gt; (herhaalbaar)
  • --provider-trusted-dir <path> (herhaalbaar)
  • --provider-allow-insecure-path
  • --provider-allow-symlink-command

Voorbeeld van een geharde 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 5000

Dry-run

Gebruik --dry-run om wijzigingen te valideren zonder naar openclaw.json te schrijven.

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-gedrag
  • Buildermodus: voert SecretRef-oplosbaarheidscontroles uit voor gewijzigde refs/providers.
  • JSON-modus (--strict-json, --json of batchmodus): voert schemavalidatie plus SecretRef-oplosbaarheidscontroles uit.
  • Beleidsvalidatie wordt ook uitgevoerd voor bekende niet-ondersteunde SecretRef-doeloppervlakken.
  • Beleidscontroles evalueren de volledige configuratie na wijziging, zodat schrijfacties naar bovenliggende objecten (bijvoorbeeld hooks instellen als object) niet om niet-ondersteunde-oppervlakvalidatie heen kunnen.
  • Exec SecretRef-controles worden standaard overgeslagen tijdens dry-run om neveneffecten van opdrachten te vermijden.
  • Gebruik --allow-exec met --dry-run om je aan te melden voor exec SecretRef-controles (dit kan provideropdrachten uitvoeren).
  • --allow-exec is alleen voor dry-run en geeft een fout als het zonder --dry-run wordt gebruikt.
--dry-run --json-velden

--dry-run --json drukt een machineleesbaar rapport af:

  • ok: of dry-run is geslaagd
  • operations: aantal geëvalueerde toewijzingen
  • checks: of schema-/oplosbaarheidscontroles zijn uitgevoerd
  • checks.resolvabilityComplete: of oplosbaarheidscontroles volledig zijn uitgevoerd (false wanneer exec-verwijzingen worden overgeslagen)
  • refsChecked: aantal verwijzingen dat daadwerkelijk is opgelost tijdens dry-run
  • skippedExecRefs: aantal exec-verwijzingen dat is overgeslagen omdat --allow-exec niet was ingesteld
  • errors: gestructureerde schema-/oplosbaarheidsfouten wanneer ok=false

Vorm van JSON-uitvoer

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

Success example

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

Failure example

{
  "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"
    }
  ]
}
If dry-run fails
  • config schema validation failed: de vorm van je configuratie na de wijziging is ongeldig; herstel het pad/de waarde of de vorm van het provider-/ref-object.
  • Config policy validation failed: unsupported SecretRef usage: verplaats die referentie terug naar platte tekst-/tekenreeksinvoer en houd SecretRefs alleen op ondersteunde oppervlakken.
  • SecretRef assignment(s) could not be resolved: de provider/ref waarnaar wordt verwezen kan momenteel niet worden opgelost (ontbrekende omgevingsvariabele, ongeldige bestandsverwijzing, exec-providerfout of provider-/bronmismatch).
  • Dry run note: skipped <n> exec SecretRef resolvability check(s): dry-run heeft exec-verwijzingen overgeslagen; voer opnieuw uit met --allow-exec als je exec-oplosbaarheidsvalidatie nodig hebt.
  • Voor batchmodus: herstel falende vermeldingen en voer --dry-run opnieuw uit voordat je schrijft.

Schrijfveiligheid

openclaw config set en andere door OpenClaw beheerde configuratieschrijvers valideren de volledige configuratie na de wijziging voordat ze die naar schijf schrijven. Als de nieuwe payload niet door schemavalidatie komt of eruitziet als een destructieve overschrijving, blijft de actieve configuratie ongemoeid en wordt de geweigerde payload ernaast opgeslagen als openclaw.json.rejected.*.

Geef de voorkeur aan CLI-schrijfbewerkingen voor kleine wijzigingen:

openclaw config set gateway.reload.mode hybrid --dry-run
openclaw config set gateway.reload.mode hybrid
openclaw config validate

Als een schrijfbewerking wordt geweigerd, inspecteer dan de opgeslagen payload en herstel de volledige configuratievorm:

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

Directe bewerkingen in een editor zijn nog steeds toegestaan, maar de draaiende Gateway behandelt ze als onvertrouwd totdat ze valideren. Ongeldige directe bewerkingen laten het opstarten mislukken of worden overgeslagen door hot reload; Gateway herschrijft openclaw.json niet. Voer openclaw doctor --fix uit om configuratie met prefix/overschrijving te repareren of de laatst bekende goede kopie te herstellen. Zie Gateway-probleemoplossing.

Herstel van het volledige bestand is gereserveerd voor doctor-reparatie. Plugin-schemawijzigingen of minHostVersion-scheefstand blijven nadrukkelijk zichtbaar in plaats van niet-gerelateerde gebruikersinstellingen terug te draaien, zoals modellen, providers, auth-profielen, kanalen, Gateway-blootstelling, tools, geheugen, browser of cron-configuratie.

Subcommando's

  • config file: Druk het actieve configuratiebestandspad af (opgelost vanuit OPENCLAW_CONFIG_PATH of de standaardlocatie). Het pad moet een regulier bestand aanduiden, geen symlink.

Herstart de gateway na wijzigingen.

Valideren

Valideer de huidige configuratie tegen het actieve schema zonder de gateway te starten.

openclaw config validate
openclaw config validate --json

Nadat openclaw config validate slaagt, kun je de lokale TUI gebruiken om een ingebedde agent de actieve configuratie met de docs te laten vergelijken terwijl je elke wijziging vanuit dezelfde terminal valideert:

openclaw chat

Daarna binnen de TUI:

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

Typische reparatielus:

  • Compare with docs

    Vraag de agent om je huidige configuratie te vergelijken met de relevante docspagina en de kleinste fix voor te stellen.

  • Apply targeted edits

    Pas gerichte wijzigingen toe met openclaw config set of openclaw configure.

  • Re-validate

    Voer openclaw config validate opnieuw uit na elke wijziging.

  • Doctor for runtime issues

    Als validatie slaagt maar de runtime nog steeds ongezond is, voer dan openclaw doctor of openclaw doctor --fix uit voor hulp bij migratie en reparatie.

  • Gerelateerd