Platforms overview
ChromeOS
ChromeOS runs Linux software through Crostini, a managed Debian container that Google exposes as the "Linux development environment". The Gateway runs inside that container exactly like any other Linux install, so the Linux guide applies in full. This page covers the ChromeOS specific setup and the gotchas that differ from a plain Linux host.
OpenClaw requires Node because its canonical state store uses node:sqlite.
Bun can install dependencies or run package scripts, but it cannot run the
OpenClaw CLI or Gateway.
Enable the Linux container
Turn on Crostini before installing anything:
- Open ChromeOS Settings.
- Go to About ChromeOS then Developers.
- Next to Linux development environment, select Set up and follow the prompts. ChromeOS downloads the Debian container and opens a Terminal.
Run every command below inside that Terminal.
Quick path
-
Install via the installer script (it installs a supported Node for you):
bash curl -fsSL https://openclaw.ai/install.sh | bash -
Onboard and install the service:
bash openclaw onboard --install-daemon -
Confirm the Gateway is running:
bash openclaw gateway status
Full server guidance lives in the Linux guide and the Gateway runbook.
Prefer the native install over Docker
On a single user Chromebook, use the native npm install (the installer script,
or a global npm i -g openclaw@latest) rather than Docker.
Docker works inside Crostini, but Docker in Crostini adds friction: if you use the Claude Code CLI as your model runtime, it has to be installed and logged in inside a persisted container home, which is easy to lose on a container rebuild. The native install keeps the CLI and its login on the Crostini filesystem directly, so a Docker image rebuild cannot wipe it.
Node version
The Node version available in a Crostini container may be below OpenClaw's minimum. OpenClaw requires Node 22.22.3+, Node 24.15+, or Node 25.9+; Node 26 is the recommended default. The installer script detects a missing or unsupported Node version and provisions a supported release automatically.
If you installed Node yourself before OpenClaw, upgrade it before installing OpenClaw:
node -vSee Node install guidance for the supported versions.
Provider keys and environment variables
The Gateway runs as a systemd user service, so an export VAR=... in an
interactive Terminal is not inherited by the already-installed service.
Put provider keys in ~/.openclaw/.env instead, one per line:
DEEPSEEK_API_KEY=your-key-hereThen restart so the service picks them up:
openclaw gateway restartSee Environment variables for the full precedence and source rules.
Crostini is not always on
Do not treat Crostini as an always-on host. After a ChromeOS reboot, open the Terminal once to start the Linux environment before relying on the Gateway.
Then verify the service:
openclaw gateway status