環境變數
OpenClaw 從多個來源提取環境變數。規則是永不覆蓋現有值。優先順序(高 → 低)
- 程序環境(Gateway 程序已從父 shell/daemon 取得的內容)。
- 目前工作目錄中的
.env(dotenv 預設;不覆蓋)。 - 全域
.env位於~/.openclaw/.env(即$OPENCLAW_STATE_DIR/.env;不覆蓋)。 - 設定
env區塊位於~/.openclaw/openclaw.json(僅在缺少時套用)。 - 選用的登入 shell 匯入(
env.shellEnv.enabled或OPENCLAW_LOAD_SHELL_ENV=1),僅對缺少的預期金鑰套用。
設定 env 區塊
兩種等效的設定內嵌環境變數方式(均不覆蓋):
Shell env 匯入
env.shellEnv 執行您的登入 shell 並僅匯入缺少的預期金鑰:
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 bridge 程序時設定。OPENCLAW_SHELL=tui-local:為本地 TUI!shell 命令設定。
UI 環境變數
OPENCLAW_THEME=light:當您的終端機有淺色背景時,強制使用淺色 TUI 調色盤。OPENCLAW_THEME=dark:強制使用深色 TUI 調色盤。COLORFGBG:如果您的終端機匯出它,OpenClaw 使用背景顏色提示自動選擇 TUI 調色盤。
設定中的環境變數替換
您可以在設定字串值中使用${VAR_NAME} 語法直接引用環境變數:
Secret refs vs ${ENV} 字串
OpenClaw 支援兩種 env 驅動的模式:
- 設定值中的
${VAR}字串替換。 - SecretRef 物件(
{ source: "env", provider: "default", id: "VAR" }),用於支援 secrets references 的欄位。
路徑相關環境變數
| 變數 | 用途 |
|---|---|
OPENCLAW_HOME | 覆蓋所有內部路徑解析使用的主目錄(~/.openclaw/、agent 目錄、會話、憑證)。在以專用服務使用者身分執行 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 展開。