Variables de entorno
OpenClaw toma variables de entorno de múltiples fuentes. La regla es nunca sobrescribir valores existentes.Precedencia (de mayor a menor)
- Entorno del proceso (lo que el proceso del Gateway ya tiene del shell/daemon padre).
.enven el directorio de trabajo actual (valor predeterminado de dotenv; no sobrescribe)..envglobal en~/.openclaw/.env(también conocido como$OPENCLAW_STATE_DIR/.env; no sobrescribe).- Bloque
envde configuración en~/.openclaw/openclaw.json(se aplica solo si falta). - Importación opcional del shell de inicio de sesión (
env.shellEnv.enabledoOPENCLAW_LOAD_SHELL_ENV=1), aplicada solo a claves esperadas que falten.
~/.config/openclaw/gateway.env como un respaldo de compatibilidad después del .env global. Si ambos archivos existen y difieren, OpenClaw conserva ~/.openclaw/.env e imprime una advertencia.
Si el archivo de configuración no existe en absoluto, se omite el paso 4; la importación del shell sigue ejecutándose si está habilitada.
Bloque env de configuración
Dos formas equivalentes de establecer variables de entorno inline (ambas no sobrescriben):
Importación del entorno del shell
env.shellEnv ejecuta tu shell de inicio de sesión e importa solo las claves esperadas que falten:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
Variables de entorno inyectadas en runtime
OpenClaw también inyecta marcadores de contexto en procesos hijo generados:OPENCLAW_SHELL=exec: se establece para comandos ejecutados mediante la herramientaexec.OPENCLAW_SHELL=acp: se establece para los procesos generados por el backend de runtime ACP (por ejemploacpx).OPENCLAW_SHELL=acp-client: se establece paraopenclaw acp clientcuando genera el proceso del puente ACP.OPENCLAW_SHELL=tui-local: se establece para comandos de shell!de la TUI local.
Variables de entorno de la interfaz
OPENCLAW_THEME=light: fuerza la paleta clara de la TUI cuando tu terminal tiene fondo claro.OPENCLAW_THEME=dark: fuerza la paleta oscura de la TUI.COLORFGBG: si tu terminal la exporta, OpenClaw usa la pista del color de fondo para elegir automáticamente la paleta de la TUI.
Sustitución de variables de entorno en la configuración
Puedes hacer referencia directamente a variables de entorno en valores de cadena de la configuración usando la sintaxis${VAR_NAME}:
Referencias de secretos frente a cadenas ${ENV}
OpenClaw admite dos patrones impulsados por variables de entorno:
- Sustitución de cadenas
${VAR}en valores de configuración. - Objetos SecretRef (
{ source: "env", provider: "default", id: "VAR" }) para campos que admiten referencias de secretos.
Variables de entorno relacionadas con rutas
| Variable | Propósito |
|---|---|
OPENCLAW_HOME | Sobrescribe el directorio home usado para toda la resolución interna de rutas (~/.openclaw/, directorios de agentes, sesiones, credenciales). Útil al ejecutar OpenClaw como un usuario de servicio dedicado. |
OPENCLAW_STATE_DIR | Sobrescribe el directorio de estado (predeterminado ~/.openclaw). |
OPENCLAW_CONFIG_PATH | Sobrescribe la ruta del archivo de configuración (predeterminada ~/.openclaw/openclaw.json). |
Registro
| Variable | Propósito |
|---|---|
OPENCLAW_LOG_LEVEL | Sobrescribe el nivel de registro tanto para archivo como para consola (por ejemplo debug, trace). Tiene prioridad sobre logging.level y logging.consoleLevel en la configuración. Los valores no válidos se ignoran con una advertencia. |
OPENCLAW_HOME
Cuando está definida, OPENCLAW_HOME sustituye al directorio home del sistema ($HOME / os.homedir()) para toda la resolución interna de rutas. Esto permite un aislamiento completo del sistema de archivos para cuentas de servicio sin interfaz.
Precedencia: OPENCLAW_HOME > $HOME > USERPROFILE > os.homedir()
Ejemplo (LaunchDaemon de macOS):
OPENCLAW_HOME también puede establecerse como una ruta con tilde (por ejemplo ~/svc), que se expande usando $HOME antes de utilizarse.
Usuarios de nvm: errores TLS de web_fetch
Si Node.js se instaló mediante nvm (no con el gestor de paquetes del sistema), el fetch() integrado usa
el almacén de CA empaquetado con nvm, que puede no incluir CAs raíz modernas (ISRG Root X1/X2 para Let’s Encrypt,
DigiCert Global Root G2, etc.). Esto provoca que web_fetch falle con "fetch failed" en la mayoría de sitios HTTPS.
En Linux, OpenClaw detecta automáticamente nvm y aplica la corrección en el entorno real de inicio:
openclaw gateway installescribeNODE_EXTRA_CA_CERTSen el entorno del servicio systemd- el punto de entrada de la CLI
openclawse vuelve a ejecutar a sí mismo conNODE_EXTRA_CA_CERTSestablecido antes del inicio de Node
node ...):
Exporta la variable antes de iniciar OpenClaw:
~/.openclaw/.env; Node lee
NODE_EXTRA_CA_CERTS al iniciar el proceso.