優先順位 (高 → 低)
- プロセス環境変数: 親シェルやデーモンからゲートウェイプロセスが既に継承している値。
- カレントディレクトリの
.env: dotenvのデフォルト動作(上書きはしません)。 - グローバルの
.env:~/.openclaw/.env(または$OPENCLAW_STATE_DIR/.env)にあるファイル(上書きはしません)。 - 設定ファイルの
envブロック:~/.openclaw/openclaw.json内の設定(値が存在しない場合にのみ適用)。 - オプションのログインシェルからのインポート:
env.shellEnv.enabledまたはOPENCLAW_LOAD_SHELL_ENV=1が有効な場合、不足しているキーのみインポート。
設定ファイルの env ブロック
インラインで環境変数を設定するには、以下の2つの同等な方法があります(どちらも上書きはしません)。
シェル環境のインポート
env.shellEnv を設定すると、ログインシェルを実行し、不足している 期待されるキーのみをインポートします。
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
ランタイムによって注入される環境変数
OpenClawは、生成される子プロセスにコンテキストマーカーを注入します。OPENCLAW_SHELL=exec:execツールを介して実行されるコマンドに設定されます。OPENCLAW_SHELL=acp: ACPランタイムのバックエンドプロセス(acpxなど)に設定されます。OPENCLAW_SHELL=acp-client:openclaw acp clientがACPブリッジプロセスを生成する際に設定されます。OPENCLAW_SHELL=tui-local: ローカルTUIの!シェルコマンドに設定されます。
UI関連の環境変数
OPENCLAW_THEME=light: ターミナルの背景が明るい場合に、ライトテーマのTUIパレットを強制します。OPENCLAW_THEME=dark: ダークテーマのTUIパレットを強制します。COLORFGBG: ターミナルがこの変数をエクスポートしている場合、OpenClawは背景色のヒントとして利用し、TUIパレットを自動選択します。
設定ファイル内での環境変数の置換
設定ファイル内の文字列値で、${VAR_NAME} 構文を使用して環境変数を直接参照できます。
シークレット参照 vs ${ENV} 文字列
OpenClawは、環境変数を活用する2つのパターンをサポートしています。
- 設定値における
${VAR}文字列置換。 - シークレット参照をサポートするフィールドでの SecretRef オブジェクト(
{ source: "env", provider: "default", id: "VAR" })。
パス関連の環境変数
| 変数名 | 用途 |
|---|---|
OPENCLAW_HOME | すべての内部パス解決(~/.openclaw/、エージェントディレクトリ、セッション、認証情報など)に使用されるホームディレクトリを上書きします。OpenClawを専用のサービスユーザーとして実行する場合に便利です。 |
OPENCLAW_STATE_DIR | 状態保存ディレクトリ(デフォルトは ~/.openclaw)を上書きします。 |
OPENCLAW_CONFIG_PATH | 設定ファイルのパス(デフォルトは ~/.openclaw/openclaw.json)を上書きします。 |
ロギング関連の環境変数
| 変数名 | 用途 |
|---|---|
OPENCLAW_LOG_LEVEL | ファイルとコンソールの両方のログレベル(debug, trace など)を上書きします。設定ファイル内の logging.level や logging.consoleLevel よりも優先されます。不正な値は無視され、警告が表示されます。 |
OPENCLAW_HOME
OPENCLAW_HOME が設定されると、すべての内部パス解決においてシステム上のホームディレクトリ($HOME や os.homedir())の代わりに使用されます。これにより、ヘッドレスなサービスアカウントにおいてファイルシステムの完全な分離が可能になります。
優先順位: OPENCLAW_HOME > $HOME > USERPROFILE > os.homedir()
例 (macOS LaunchDaemon):
OPENCLAW_HOME にはチルダを含むパス(例:~/svc)を指定することもでき、使用前に現在の $HOME を使用して展開されます。