.env-bestanden zijn een bron met lager vertrouwen: OpenClaw negeert providerreferenties en beschermde runtime-instellingen uit workspace-.env voordat de voorrang wordt toegepast.
Voorrang (hoogste → laagste)
- Procesomgeving (wat het Gateway-proces al heeft van de bovenliggende shell/daemon).
.envin de huidige werkdirectory (dotenv-standaard; overschrijft niet; providerreferenties en beschermde runtime-instellingen worden genegeerd).- Globale
.envop~/.openclaw/.env(ook bekend als$OPENCLAW_STATE_DIR/.env; aanbevolen voor provider-API-sleutels; overschrijft niet). - Config-
env-blok in~/.openclaw/openclaw.json(alleen toegepast als de waarde ontbreekt). - Optionele login-shell-import (
env.shellEnv.enabledofOPENCLAW_LOAD_SHELL_ENV=1), alleen toegepast voor ontbrekende verwachte sleutels.
~/.config/openclaw/gateway.env als compatibiliteitsfallback na de globale .env. Als beide bestanden bestaan en elkaar tegenspreken, behoudt OpenClaw ~/.openclaw/.env en toont het een waarschuwing.
Als het configuratiebestand volledig ontbreekt, wordt stap 4 overgeslagen; shell-import wordt nog steeds uitgevoerd als deze is ingeschakeld.
Providerreferenties en workspace-.env
Bewaar provider-API-sleutels niet alleen in een workspace-.env. OpenClaw negeert providerreferentie-omgevingsvariabelen uit workspace-.env-bestanden, inclusief gangbare sleutels zoals GEMINI_API_KEY, GOOGLE_API_KEY, XAI_API_KEY, MISTRAL_API_KEY, GROQ_API_KEY, DEEPSEEK_API_KEY, PERPLEXITY_API_KEY, BRAVE_API_KEY, TAVILY_API_KEY, EXA_API_KEY en FIRECRAWL_API_KEY.
Gebruik een van deze vertrouwde bronnen voor providerreferenties:
- De Gateway-procesomgeving, zoals een shell, launchd/systemd-unit, container secret of CI secret.
- Het globale runtime-dotenv-bestand op
~/.openclaw/.envof$OPENCLAW_STATE_DIR/.env. - Het config-
env-blok in~/.openclaw/openclaw.json. - Optionele login-shell-import wanneer
env.shellEnv.enabledofOPENCLAW_LOAD_SHELL_ENV=1is ingeschakeld.
.env hebt opgeslagen, verplaats ze dan naar een van de vertrouwde bronnen hierboven. Workspace-.env kan nog steeds gewone projectvariabelen leveren die geen referenties, endpoint-omleidingen, host-overschrijvingen of OPENCLAW_*-runtime-instellingen zijn.
Zie Workspace-.env-bestanden voor de beveiligingsreden.
Config-env-blok
Twee equivalente manieren om inline env-vars in te stellen (beide overschrijven niet):
env-blok accepteert alleen letterlijke stringwaarden. Het breidt
file:...-waarden niet uit; bijvoorbeeld XAI_API_KEY: "file:secrets/xai-api-key.txt"
wordt precies als die string doorgegeven aan providers.
Gebruik voor provider-sleutels die door bestanden worden ondersteund een SecretRef op het referentieveld dat
dit ondersteunt:
Shell-env-import
env.shellEnv voert je login-shell uit en importeert alleen ontbrekende verwachte sleutels:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
Exec-shell-snapshots
Op niet-Windows Gateway-hosts gebruiken bash- en zsh-exec-opdrachten standaard een opstartsnapshot.
Stel OPENCLAW_EXEC_SHELL_SNAPSHOT=0 in de Gateway-procesomgeving in om dit pad uit te schakelen.
Waarden false, no en off schakelen het ook uit. Per-aanroep-exec.env-waarden kunnen
snapshots niet omschakelen of de snapshotcache omleiden.
Door runtime geïnjecteerde env-vars
OpenClaw injecteert ook contextmarkeringen in gestarte childprocessen:OPENCLAW_SHELL=exec: ingesteld voor opdrachten die via deexec-tool worden uitgevoerd.OPENCLAW_SHELL=acp: ingesteld voor ACP-runtime-backendprocesstarts (bijvoorbeeldacpx).OPENCLAW_SHELL=acp-client: ingesteld vooropenclaw acp clientwanneer het het ACP-bridgeproces start.OPENCLAW_SHELL=tui-local: ingesteld voor lokale TUI-!-shellopdrachten.OPENCLAW_CLI=1: ingesteld voor childprocessen die door het CLI-entrypoint worden gestart.
UI-env-vars
OPENCLAW_THEME=light: forceer het lichte TUI-palet wanneer je terminal een lichte achtergrond heeft.OPENCLAW_THEME=dark: forceer het donkere TUI-palet.COLORFGBG: als je terminal dit exporteert, gebruikt OpenClaw de achtergrondkleurhint om automatisch het TUI-palet te kiezen.
Env-var-substitutie in config
Je kunt direct naar env-vars verwijzen in config-stringwaarden met de${VAR_NAME}-syntaxis:
Secret refs versus ${ENV}-strings
OpenClaw ondersteunt twee env-gestuurde patronen:
${VAR}-stringsubstitutie in configwaarden.- SecretRef-objecten (
{ source: "env", provider: "default", id: "VAR" }) voor velden die secret-referenties ondersteunen.
env-blok zelf lost geen SecretRefs of file:...-
stenowaarden op.
Padgerelateerde env-vars
| Variabele | Doel |
|---|---|
OPENCLAW_HOME | Overschrijf de homedirectory die wordt gebruikt voor interne OpenClaw-padstandaarden (~/.openclaw/, agentdirs, sessies, referenties, installer-onboarding en de standaard dev-checkout). Nuttig wanneer OpenClaw als toegewijde servicegebruiker draait. |
OPENCLAW_STATE_DIR | Overschrijf de state-directory (standaard ~/.openclaw). |
OPENCLAW_CONFIG_PATH | Overschrijf het pad naar het configuratiebestand (standaard ~/.openclaw/openclaw.json). |
OPENCLAW_INCLUDE_ROOTS | Padlijst van directories waar $include-directieven bestanden buiten de configdirectory mogen oplossen (standaard: geen — $include is beperkt tot de configdir). Tilde wordt uitgebreid. |
Logging
| Variabele | Doel |
|---|---|
OPENCLAW_LOG_LEVEL | Overschrijf het logniveau voor zowel bestand als console (bijv. debug, trace). Heeft voorrang op logging.level en logging.consoleLevel in config. Ongeldige waarden worden genegeerd met een waarschuwing. |
OPENCLAW_DEBUG_MODEL_TRANSPORT | Geef gerichte timingdiagnostiek voor modelverzoeken/-antwoorden op info-niveau zonder globale debuglogs in te schakelen. |
OPENCLAW_DEBUG_MODEL_PAYLOAD | Modelpayloaddiagnostiek: summary, tools of full-redacted. full-redacted is begrensd en geredigeerd, maar kan prompt-/berichttekst bevatten. |
OPENCLAW_DEBUG_SSE | Streamingdiagnostiek: events voor first/done-timing, peek om de eerste vijf geredigeerde SSE-events op te nemen. |
OPENCLAW_DEBUG_CODE_MODE | Code-mode-modeloppervlakdiagnostiek, inclusief verbergen van provider-tools en afdwinging van alleen exec/wait. |
OPENCLAW_HOME
Wanneer ingesteld, vervangt OPENCLAW_HOME de systeemhomedirectory ($HOME / os.homedir()) voor interne OpenClaw-padstandaarden. Dit omvat de standaard state-directory, het configuratiepad, agentdirectories, referenties, installer-onboardingworkspace en de standaard dev-checkout die wordt gebruikt door openclaw update --channel dev.
Voorrang: OPENCLAW_HOME > $HOME > USERPROFILE > Termux PREFIX-homefallback op Android > os.homedir()
Voorbeeld (macOS LaunchDaemon):
OPENCLAW_HOME kan ook worden ingesteld op een tildepad (bijv. ~/svc), dat vóór gebruik wordt uitgebreid met dezelfde OS-homefallbackketen.
Expliciete padvariabelen zoals OPENCLAW_STATE_DIR, OPENCLAW_CONFIG_PATH en OPENCLAW_GIT_DIR hebben nog steeds voorrang. OS-accounttaken zoals detectie van shell-opstartbestanden, package-manager-setup en host-~-uitbreiding kunnen nog steeds de echte systeemhome gebruiken.
nvm-gebruikers: web_fetch TLS-fouten
Als Node.js is geïnstalleerd via nvm (niet via de systeempakketbeheerder), gebruikt de ingebouwdefetch()
de gebundelde CA-store van nvm, waarin moderne root-CA’s kunnen ontbreken (ISRG Root X1/X2 voor Let’s Encrypt,
DigiCert Global Root G2, enz.). Daardoor faalt web_fetch op de meeste HTTPS-sites met "fetch failed".
Op Linux detecteert OpenClaw nvm automatisch en past het de fix toe in de daadwerkelijke opstartomgeving:
openclaw gateway installschrijftNODE_EXTRA_CA_CERTSnaar de systemd-serviceomgeving- het
openclaw-CLI-entrypoint voert zichzelf opnieuw uit metNODE_EXTRA_CA_CERTSingesteld vóór het opstarten van Node
node ...-starts):
Exporteer de variabele voordat je OpenClaw start:
~/.openclaw/.env; Node leest
NODE_EXTRA_CA_CERTS bij het opstarten van het proces.
Legacy-omgevingsvariabelen
OpenClaw leest alleenOPENCLAW_*-omgevingsvariabelen. De legacy-
CLAWDBOT_*- en MOLTBOT_*-prefixen uit eerdere releases worden stilzwijgend
genegeerd.
Als er bij het opstarten nog steeds een van deze op het Gateway-proces is ingesteld, geeft OpenClaw een
enkele Node-deprecationwaarschuwing (OPENCLAW_LEGACY_ENV_VARS) die de
gedetecteerde prefixen en het totale aantal vermeldt. Hernoem elke waarde door het
legacy-prefix te vervangen door OPENCLAW_ (bijvoorbeeld CLAWDBOT_GATEWAY_TOKEN →
OPENCLAW_GATEWAY_TOKEN); de oude namen hebben geen effect.