openclaw.json 用の非対話ヘルパー: パスで値を get/set/patch/unset する、スキーマを出力する、検証する、またはアクティブなファイルパスを出力する。サブコマンドなしで openclaw config を実行すると、openclaw configure と同じガイド付きウィザードが開く。
OPENCLAW_NIX_MODE=1 の場合、OpenClaw は openclaw.json を不変として扱う。読み取り専用コマンド(config get、config file、config schema、config validate)は引き続き動作するが、設定を書き込むコマンドは拒否される。代わりにインストール元の Nix ソースを編集する。ファーストパーティの nix-openclaw ディストリビューションでは、nix-openclaw クイックスタートを使用し、programs.openclaw.config または instances.<name>.config の下に値を設定する。ルートオプション
サブコマンドなしで
openclaw config を実行するときに繰り返し指定できる、ガイド付きセットアップのセクションフィルター。workspace、model、web、gateway、daemon、channels、plugins、skills、health。
例
パス
ドット記法またはブラケット記法。シェルの例では、zsh が[0] を glob 展開しないように、ブラケットパスを引用符で囲む:
config get
墨消し済みの設定スナップショットから値を読み取る(シークレットは出力されない)。--json は生の値を JSON として出力する。それ以外の場合、文字列/数値/真偽値はそのまま出力され、オブジェクト/配列は整形済み JSON として出力される。
config file
OPENCLAW_CONFIG_PATH またはデフォルトの場所から解決された、アクティブな設定ファイルのパスを出力する。このパスはシンボリックリンクではなく通常ファイルを指す。書き込み安全性を参照。
config schema
openclaw.json 用に生成された JSON スキーマを stdout に出力する。
What it includes
What it includes
- 現在のルート設定スキーマに加え、エディターツール用のルート
$schema文字列フィールド。 - Control UI で使用されるフィールド
title/descriptionのドキュメントメタデータ。 - ネストされたオブジェクト、ワイルドカード(
*)、配列項目([])ノードは、一致するフィールドドキュメントが存在する場合、同じtitle/descriptionメタデータを継承する。 anyOf/oneOf/allOfブランチも同じドキュメントメタデータを継承する。- ランタイムマニフェストを読み込める場合は、ベストエフォートのライブ Plugin + チャンネルスキーマメタデータ。
- 現在の設定が無効な場合でも、クリーンなフォールバックスキーマ。
config validate
Gateway を起動せずに、現在の設定をアクティブなスキーマに対して検証する。
検証がすでに失敗している場合は、
openclaw configure または openclaw doctor --fix から始める。openclaw chat は無効な設定のガードを回避しない。値
値は可能な場合 JSON5 として解析され、それ以外の場合は生の文字列として扱われる。文字列フォールバックなしで標準 JSON を要求するには--strict-json を使用する(その場合、コメント、末尾カンマ、引用符なしキーなどの JSON5 専用構文は拒否される)。--json は config set における --strict-json のレガシーエイリアス。
config get <path> --json は、端末用に整形されたテキストではなく、生の値を JSON として出力する。
オブジェクト代入はデフォルトで対象パスを置き換える。ユーザーが追加したエントリを保持することが多い保護対象パスでは、既存エントリを削除する置き換えは
--replace を渡さない限り拒否される: agents.defaults.models、agents.list、models.providers、models.providers.<id>、models.providers.<id>.models、plugins.entries、auth.profiles。--merge を使用する:
--replace を使用する。
config set モード
- Value mode
- SecretRef builder mode
- Provider builder mode
- Batch mode
--batch-json/--batch-file)が信頼できる情報源として使われる。--strict-json / --json はバッチ解析の動作を変更しない。
JSON パス/値モードは SecretRef とプロバイダーにも直接使用できる:
プロバイダービルダーフラグ
プロバイダービルダーの対象には、パスとしてsecrets.providers.<alias> を使用する必要がある。
Common flags
Common flags
--provider-source <env|file|exec>--provider-timeout-ms <ms>(file、exec)
Env provider (--provider-source env)
Env provider (--provider-source env)
--provider-allowlist <ENV_VAR>(繰り返し指定可)
File provider (--provider-source file)
File provider (--provider-source file)
--provider-path <path>(必須)--provider-mode <singleValue|json>--provider-max-bytes <bytes>--provider-allow-insecure-path
Exec provider (--provider-source exec)
Exec provider (--provider-source exec)
--provider-command <path>(必須)--provider-arg <arg>(繰り返し指定可)--provider-no-output-timeout-ms <ms>--provider-max-output-bytes <bytes>--provider-json-only--provider-env <KEY=VALUE>(繰り返し指定可)--provider-pass-env <ENV_VAR>(繰り返し指定可)--provider-trusted-dir <path>(繰り返し指定可)--provider-allow-insecure-path--provider-allow-symlink-command
config patch
パスベースの config set コマンドを多数実行する代わりに、設定の形をした JSON5 パッチを貼り付けるかパイプする。オブジェクトは再帰的にマージされ、配列とスカラー値は対象を置き換え、null は対象パスを削除する。
--replace-path <path> を使用する:
--dry-run は、書き込まずにスキーマと SecretRef の解決可能性チェックを実行する。exec ベースの SecretRef は dry-run 中はデフォルトでスキップされる。dry-run でプロバイダーコマンドを意図的に実行したい場合は --allow-exec を追加する。
Dry run
--dry-run は openclaw.json に書き込まずに変更を検証する。config set、config patch、config unset で使用できる。
ドライランの動作
ドライランの動作
- ビルダーモード: 変更された ref/provider に対して SecretRef の解決可能性チェックを実行します。
- JSON モード (
--strict-json、--json、またはバッチモード): スキーマ検証に加えて SecretRef の解決可能性チェックを実行します。 - ポリシー検証は変更後の完全な config に対して実行されるため、親オブジェクトの書き込み (たとえば
hooksをオブジェクトとして設定する場合) で未対応サーフェスの検証を迂回することはできません。 - Exec SecretRef チェックは、コマンドの副作用を避けるためデフォルトでスキップされます。オプトインするには
--allow-execを渡します (これにより provider コマンドが実行される場合があります)。--allow-execはドライラン専用で、--dry-runなしではエラーになります。
--dry-run --json のフィールド
--dry-run --json のフィールド
ok: ドライランが成功したかどうかoperations: 評価された代入の数checks: スキーマ/解決可能性チェックが実行されたかどうかchecks.resolvabilityComplete: 解決可能性チェックが完了まで実行されたかどうか (exec ref がスキップされた場合は false)refsChecked: ドライラン中に実際に解決された ref の数skippedExecRefs:--allow-execが設定されていなかったためスキップされた exec ref の数errors:ok=falseの場合の、構造化された missing-path、schema、または resolvability の失敗
JSON 出力の形状
- 成功例
- 失敗例
ドライランが失敗した場合
ドライランが失敗した場合
config schema validation failed: 変更後の config 形状が無効です。path/value または provider/ref オブジェクトの形状を修正してください。Config policy validation failed: unsupported SecretRef usage: その認証情報をプレーンテキスト/文字列入力に戻してください。SecretRef は対応サーフェスのみに保持します。SecretRef assignment(s) could not be resolved: 参照された provider/ref は現在解決できません (env var の不足、無効なファイルポインター、exec provider の失敗、または provider/source の不一致)。Dry run note: skipped <n> exec SecretRef resolvability check(s): exec の解決可能性検証が必要な場合は、--allow-execを付けて再実行してください。- バッチモードでは、失敗したエントリを修正し、書き込む前に
--dry-runを再実行してください。
変更の適用
config set / config patch / config unset が成功するたびに、CLI は Gateway の再起動が必要かどうかを示す 3 種類のヒントのいずれかを出力します。
| ヒント | 意味 |
|---|---|
Restart the gateway to apply. | 変更されたパスには完全な再起動が必要です。 |
Change will apply without restarting the gateway. | ホットリロードが自動的に反映します。 |
No gateway restart needed. | ランタイムに関連する変更はありません。 |
plugins.entries (またはその任意のサブパス) への書き込みは常に再起動が必要です。CLI はすべての Plugin のリロードメタデータが読み込まれていることを証明できないためです。
書き込みの安全性
openclaw config set とその他の OpenClaw 所有の config ライターは、ディスクにコミットする前に変更後の完全な config を検証します。新しいペイロードがスキーマ検証に失敗した場合や破壊的な上書きに見える場合、アクティブな config はそのまま残され、拒否されたペイロードは隣に openclaw.json.rejected.* として保存されます。
小さな編集には CLI 書き込みを推奨します。
openclaw.json を書き換えません。接頭辞付き/上書きされた config を修復するか、最後に正常だったコピーを復元するには、openclaw doctor --fix を実行してください。Gateway のトラブルシューティングを参照してください。
ファイル全体のリカバリーは doctor 修復専用です。Plugin スキーマ変更や minHostVersion のずれは、models、providers、auth profiles、channels、Gateway 公開、tools、memory、browser、cron config などの無関係なユーザー設定をロールバックするのではなく、明確なエラーとして扱われます。
修復ループ
openclaw config validate が通った後は、local TUI を使って、同じターミナルから各変更を検証しながら、埋め込みエージェントにアクティブな config と docs の比較をさせます。
! によりリテラルなローカルシェルコマンドが実行されます (セッションごとに 1 回の確認プロンプト後)。