Zmienne środowiskowe
OpenClaw pobiera zmienne środowiskowe z wielu źródeł. Zasada brzmi: nigdy nie nadpisuj istniejących wartości.Pierwszeństwo (od najwyższego → do najniższego)
- Środowisko procesu (to, co proces Gateway już ma od nadrzędnej powłoki/demona).
.envw bieżącym katalogu roboczym (domyślne zachowanie dotenv; bez nadpisywania).- Globalny
.envw~/.openclaw/.env(czyli$OPENCLAW_STATE_DIR/.env; bez nadpisywania). - Blok
envw config w~/.openclaw/openclaw.json(stosowany tylko wtedy, gdy brakuje wartości). - Opcjonalny import login shell (
env.shellEnv.enabledlubOPENCLAW_LOAD_SHELL_ENV=1), stosowany tylko dla brakujących oczekiwanych kluczy.
~/.config/openclaw/gateway.env jako zgodny wstecz fallback po globalnym .env. Jeśli oba pliki istnieją i różnią się, OpenClaw zachowuje ~/.openclaw/.env i drukuje ostrzeżenie.
Jeśli plik config w ogóle nie istnieje, krok 4 jest pomijany; import powłoki nadal działa, jeśli jest włączony.
Blok env w config
Dwa równoważne sposoby ustawiania wbudowanych zmiennych env (oba bez nadpisywania):
Import env z powłoki
env.shellEnv uruchamia Twoją login shell i importuje tylko brakujące oczekiwane klucze:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
Zmienne env wstrzykiwane w runtime
OpenClaw wstrzykuje też znaczniki kontekstu do uruchamianych procesów potomnych:OPENCLAW_SHELL=exec: ustawiane dla poleceń uruchamianych przez narzędzieexec.OPENCLAW_SHELL=acp: ustawiane dla uruchomień procesów backendu runtime ACP (na przykładacpx).OPENCLAW_SHELL=acp-client: ustawiane dlaopenclaw acp client, gdy uruchamia proces mostka ACP.OPENCLAW_SHELL=tui-local: ustawiane dla lokalnych poleceń powłoki TUI!.
Zmienne env UI
OPENCLAW_THEME=light: wymuś jasną paletę TUI, gdy terminal ma jasne tło.OPENCLAW_THEME=dark: wymuś ciemną paletę TUI.COLORFGBG: jeśli terminal ją eksportuje, OpenClaw używa wskazówki koloru tła do automatycznego wyboru palety TUI.
Podstawianie zmiennych env w config
Możesz odwoływać się bezpośrednio do zmiennych env w wartościach stringów config przy użyciu składni${VAR_NAME}:
Secret refs a stringi ${ENV}
OpenClaw obsługuje dwa wzorce oparte na env:
- podstawianie stringów
${VAR}w wartościach config; - obiekty SecretRef (
{ source: "env", provider: "default", id: "VAR" }) dla pól obsługujących odwołania do sekretów.
Zmienne env związane ze ścieżkami
| Zmienna | Cel |
|---|---|
OPENCLAW_HOME | Nadpisuje katalog domowy używany do całego wewnętrznego rozwiązywania ścieżek (~/.openclaw/, katalogi agentów, sesje, poświadczenia). Przydatne przy uruchamianiu OpenClaw jako dedykowany użytkownik usługi. |
OPENCLAW_STATE_DIR | Nadpisuje katalog stanu (domyślnie ~/.openclaw). |
OPENCLAW_CONFIG_PATH | Nadpisuje ścieżkę pliku config (domyślnie ~/.openclaw/openclaw.json). |
Logowanie
| Zmienna | Cel |
|---|---|
OPENCLAW_LOG_LEVEL | Nadpisuje poziom logowania zarówno dla pliku, jak i konsoli (np. debug, trace). Ma pierwszeństwo przed logging.level i logging.consoleLevel w config. Nieprawidłowe wartości są ignorowane z ostrzeżeniem. |
OPENCLAW_HOME
Gdy jest ustawione, OPENCLAW_HOME zastępuje systemowy katalog domowy ($HOME / os.homedir()) dla całego wewnętrznego rozwiązywania ścieżek. Umożliwia to pełną izolację systemu plików dla bezgłowych kont usług.
Pierwszeństwo: OPENCLAW_HOME > $HOME > USERPROFILE > os.homedir()
Przykład (macOS LaunchDaemon):
OPENCLAW_HOME można również ustawić jako ścieżkę z tyldą (np. ~/svc), która przed użyciem zostanie rozwinięta z użyciem $HOME.
Użytkownicy nvm: błędy TLS w web_fetch
Jeśli Node.js został zainstalowany przez nvm (a nie systemowy menedżer pakietów), wbudowane fetch() używa
bundlowanego magazynu CA nvm, któremu mogą brakować nowoczesnych głównych urzędów certyfikacji (ISRG Root X1/X2 dla Let’s Encrypt,
DigiCert Global Root G2 itd.). Powoduje to, że web_fetch kończy się błędem "fetch failed" na większości witryn HTTPS.
W Linuksie OpenClaw automatycznie wykrywa nvm i stosuje poprawkę w rzeczywistym środowisku startowym:
openclaw gateway installzapisujeNODE_EXTRA_CA_CERTSdo środowiska usługi systemd- entrypoint CLI
openclawponownie uruchamia sam siebie z ustawionymNODE_EXTRA_CA_CERTSprzed startem Node
node ...):
Wyeksportuj zmienną przed uruchomieniem OpenClaw:
~/.openclaw/.env; Node odczytuje
NODE_EXTRA_CA_CERTS przy starcie procesu.