Umgebungsvariablen

OpenClaw lädt Umgebungsvariablen aus mehreren Quellen. Die Regel lautet: Bestehende Werte werden niemals überschrieben.

Priorität (höchste → niedrigste)

  1. Prozess-Umgebung (was der Gateway-Prozess bereits von der übergeordneten Shell/dem Daemon hat).
  2. .env im aktuellen Arbeitsverzeichnis (dotenv-Standard; überschreibt nicht).
  3. Globale .env unter ~/.openclaw/.env (auch $OPENCLAW_STATE_DIR/.env; überschreibt nicht).
  4. Config-Block env in ~/.openclaw/openclaw.json (wird nur angewendet, wenn fehlend).
  5. Optionaler Login-Shell-Import (env.shellEnv.enabled oder OPENCLAW_LOAD_SHELL_ENV=1), wird nur für fehlende erwartete Keys angewendet.

Wenn die Config-Datei komplett fehlt, wird Schritt 4 übersprungen; der Shell-Import läuft trotzdem, falls aktiviert.

Config-Block env

Zwei gleichwertige Möglichkeiten, Inline-Umgebungsvariablen zu setzen (beide überschreiben nicht):

{
  env: {
    OPENROUTER_API_KEY: "sk-or-...",
    vars: {
      GROQ_API_KEY: "gsk-...",
    },
  },
}

Shell-Env-Import

env.shellEnv führt deine Login-Shell aus und importiert nur fehlende erwartete Keys:

{
  env: {
    shellEnv: {
      enabled: true,
      timeoutMs: 15000,
    },
  },
}

Äquivalente Umgebungsvariablen:

  • OPENCLAW_LOAD_SHELL_ENV=1
  • OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000

Umgebungsvariablen-Substitution in der Config

Du kannst Umgebungsvariablen direkt in Config-String-Werten mit der Syntax ${VAR_NAME} referenzieren:

{
  models: {
    providers: {
      "vercel-gateway": {
        apiKey: "${VERCEL_GATEWAY_API_KEY}",
      },
    },
  },
}

Siehe Konfiguration: Umgebungsvariablen-Substitution für alle Details.

Verwandte Themen