환경 변수
OpenClaw는 여러 소스에서 환경 변수를 불러옵니다. 기본 원칙은 이미 존재하는 값을 절대 덮어쓰지 않는 것입니다.우선순위(높음 -> 낮음)
- 프로세스 환경 변수: Gateway 프로세스가 이미 부모 셸 또는 데몬으로부터 받은 값
- 현재 작업 디렉터리의
.env: dotenv 기본 동작, 덮어쓰지 않음 ~/.openclaw/.env의 전역.env: 즉$OPENCLAW_STATE_DIR/.env, 덮어쓰지 않음~/.openclaw/openclaw.json의 configenv블록: 값이 없을 때만 적용- 선택적 login-shell import:
env.shellEnv.enabled또는OPENCLAW_LOAD_SHELL_ENV=1, 예상 키가 빠졌을 때만 적용
Config env 블록
인라인 환경 변수를 설정하는 동등한 방법이 두 가지 있습니다. 둘 다 기존 값을 덮어쓰지 않습니다.
셸 환경 변수 가져오기
env.shellEnv는 login shell을 실행하고 누락된 예상 키만 가져옵니다.
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
런타임에 주입되는 환경 변수
OpenClaw는 자식 프로세스를 생성할 때 컨텍스트 표식도 함께 주입합니다.OPENCLAW_SHELL=exec:exec도구로 실행된 명령에 설정됩니다.OPENCLAW_SHELL=acp: ACP 런타임 백엔드 프로세스를 생성할 때 설정됩니다. 예:acpxOPENCLAW_SHELL=acp-client:openclaw acp client가 ACP 브리지 프로세스를 생성할 때 설정됩니다.OPENCLAW_SHELL=tui-local: 로컬 TUI의!셸 명령에 설정됩니다.
UI 환경 변수
OPENCLAW_THEME=light: 터미널 배경이 밝을 때 밝은 TUI 팔레트를 강제로 사용합니다.OPENCLAW_THEME=dark: 어두운 TUI 팔레트를 강제로 사용합니다.COLORFGBG: 터미널이 이 값을 내보내면 OpenClaw는 배경색 힌트를 사용해 TUI 팔레트를 자동 선택합니다.
Config에서 환경 변수 치환
config 문자열 값 안에서${VAR_NAME} 문법으로 환경 변수를 직접 참조할 수 있습니다.
Secret refs vs ${ENV} 문자열
OpenClaw는 환경 변수 기반 패턴을 두 가지 방식으로 지원합니다.
- config 값에서
${VAR}문자열 치환 - 비밀 참조를 지원하는 필드를 위한 SecretRef 객체 (
{ source: "env", provider: "default", id: "VAR" })
경로 관련 환경 변수
| Variable | Purpose |
|---|---|
OPENCLAW_HOME | 모든 내부 경로 해석(~/.openclaw/, agent 디렉터리, sessions, credentials)에 사용할 홈 디렉터리를 재정의합니다. 전용 서비스 계정으로 OpenClaw를 실행할 때 유용합니다. |
OPENCLAW_STATE_DIR | 상태 디렉터리를 재정의합니다. 기본값은 ~/.openclaw입니다. |
OPENCLAW_CONFIG_PATH | config 파일 경로를 재정의합니다. 기본값은 ~/.openclaw/openclaw.json입니다. |
로깅
| Variable | Purpose |
|---|---|
OPENCLAW_LOG_LEVEL | 파일과 콘솔 모두의 로그 레벨을 재정의합니다. 예: debug, trace. config의 logging.level 및 logging.consoleLevel보다 우선합니다. 잘못된 값은 경고 후 무시됩니다. |
OPENCLAW_HOME
OPENCLAW_HOME을 설정하면 시스템 홈 디렉터리($HOME / os.homedir()) 대신 이 값을 모든 내부 경로 해석에 사용합니다. 이를 통해 headless 서비스 계정에서도 완전한 파일시스템 격리를 구성할 수 있습니다.
우선순위: OPENCLAW_HOME > $HOME > USERPROFILE > os.homedir()
예시 (macOS LaunchDaemon):
OPENCLAW_HOME은 ~/svc 같은 틸드 경로로도 설정할 수 있으며, 사용 전에 $HOME을 기준으로 확장됩니다.