--- summary: "Run the OpenClaw Gateway on ChromeOS inside a Crostini Linux container" read_when: - Installing OpenClaw on a Chromebook or ChromeOS device - Debugging missing provider keys or a Gateway that is gone after a reboot title: "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](/platforms/linux) 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: 1. Open ChromeOS **Settings**. 2. Go to **About ChromeOS** then **Developers**. 3. 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 1. Install via the installer script (it installs a supported Node for you): ```bash curl -fsSL https://openclaw.ai/install.sh | bash ``` 2. Onboard and install the service: ```bash openclaw onboard --install-daemon ``` 3. Confirm the Gateway is running: ```bash openclaw gateway status ``` Full server guidance lives in the [Linux guide](/platforms/linux) and the [Gateway runbook](/gateway). ## 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](/install/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: ```bash node -v ``` See [Node install guidance](/install/node) 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: ```bash DEEPSEEK_API_KEY=your-key-here ``` Then restart so the service picks them up: ```bash openclaw gateway restart ``` See [Environment variables](/help/environment) 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: ```bash openclaw gateway status ``` ## Related - [Linux guide](/platforms/linux) - [Install overview](/install) - [Node install guidance](/install/node) - [Gateway runbook](/gateway) - [Gateway configuration](/gateway/configuration) - [Google: Set up Linux on your Chromebook](https://support.google.com/chromebook/answer/9145439)