環境変数
OpenClawは複数のソースから環境変数を取得します。ルールは既存の値を決して上書きしないことです。優先順位(高 → 低)
- プロセス環境(親シェル/デーモンからGatewayプロセスがすでに持っているもの)。
- 現在の作業ディレクトリ内の
.env(dotenvのデフォルト。上書きしません)。 - グローバル
.env(~/.openclaw/.env。別名$OPENCLAW_STATE_DIR/.env。上書きしません)。 ~/.openclaw/openclaw.json内の設定envブロック(不足している場合にのみ適用)。- 任意のlogin shellインポート(
env.shellEnv.enabledまたはOPENCLAW_LOAD_SHELL_ENV=1)。想定されるキーが不足している場合にのみ適用されます。
.env の後に ~/.config/openclaw/gateway.env も互換性のためのフォールバックとして扱います。両方のファイルが存在し、内容が食い違う場合、OpenClawは ~/.openclaw/.env を維持し、警告を表示します。
設定ファイル自体が存在しない場合、ステップ4はスキップされます。shell importは有効であれば引き続き実行されます。
設定 env ブロック
インラインenv varを設定する等価な2つの方法があります(どちらも上書きしません):
Shell envインポート
env.shellEnv はlogin shellを実行し、想定されるキーのうち不足しているものだけを取り込みます:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
ランタイムで注入されるenv var
OpenClawは、生成された子プロセスにコンテキストマーカーも注入します:OPENCLAW_SHELL=exec:execツール経由で実行されるコマンドに設定されます。OPENCLAW_SHELL=acp: ACPランタイムバックエンドのプロセス起動時(たとえばacpx)に設定されます。OPENCLAW_SHELL=acp-client:openclaw acp clientがACP bridgeプロセスを起動するときに設定されます。OPENCLAW_SHELL=tui-local: ローカルTUIの!シェルコマンドに設定されます。
UI env var
OPENCLAW_THEME=light: 端末の背景が明るい場合に、明るいTUIパレットを強制します。OPENCLAW_THEME=dark: 暗いTUIパレットを強制します。COLORFGBG: 端末がこれを出力する場合、OpenClawは背景色のヒントを使ってTUIパレットを自動選択します。
設定内のenv var置換
設定文字列の値では、${VAR_NAME} 構文を使ってenv varを直接参照できます:
Secret refと ${ENV} 文字列
OpenClawは2つのenv駆動パターンをサポートします:
- 設定値内の
${VAR}文字列置換。 - secrets参照をサポートするフィールド向けの SecretRef オブジェクト(
{ source: "env", provider: "default", id: "VAR" })。
パス関連のenv var
| Variable | 用途 |
|---|---|
OPENCLAW_HOME | すべての内部パス解決(~/.openclaw/、agentディレクトリ、session、credentials)で使用するホームディレクトリを上書きします。OpenClawを専用サービスユーザーとして実行する場合に便利です。 |
OPENCLAW_STATE_DIR | state directoryを上書きします(デフォルト: ~/.openclaw)。 |
OPENCLAW_CONFIG_PATH | 設定ファイルパスを上書きします(デフォルト: ~/.openclaw/openclaw.json)。 |
ログ
| Variable | 用途 |
|---|---|
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 を使って展開されます。
nvmユーザー: web_fetchのTLS失敗
Node.jsがnvm経由でインストールされている場合(システムパッケージマネージャーではない場合)、組み込みのfetch() は
nvmに同梱されたCAストアを使用しますが、そこには最新のルートCA(Let’s EncryptのISRG Root X1/X2、
DigiCert Global Root G2など)が含まれていないことがあります。そのため、web_fetch はほとんどのHTTPSサイトで "fetch failed" として失敗します。
Linuxでは、OpenClawはnvmを自動検出し、実際の起動環境で修正を適用します:
openclaw gateway installはsystemdサービス環境にNODE_EXTRA_CA_CERTSを書き込みますopenclawCLIエントリーポイントは、Node起動前にNODE_EXTRA_CA_CERTSを設定して自分自身を再実行します
node ... 起動向け):
OpenClawを起動する前に変数をexportしてください:
~/.openclaw/.env にだけ書くことに頼らないでください。Nodeは
NODE_EXTRA_CA_CERTS をプロセス起動時に読み込みます。