Run OpenClaw Gateway on ChromeOS with Crostini

Learn how to run the OpenClaw Gateway on ChromeOS inside a Crostini Linux container. This guide covers ChromeOS-specific setup and differences from standard Linux.

Read this when

  • Installing OpenClaw on a Chromebook or ChromeOS device
  • Debugging missing provider keys or a Gateway that is gone after a reboot

ChromeOS supports Linux applications through Crostini, which is a managed Debian container that Google presents as the "Linux development environment". The Gateway operates inside this container the same way it would on any standard Linux system, meaning the Linux guide applies completely. This page focuses on ChromeOS-specific configuration and the differences you will encounter compared to a regular Linux machine.

OpenClaw depends on Node because its primary state store relies on node:sqlite. While Bun can handle dependency installation and package script execution, it cannot run the OpenClaw CLI or Gateway.

Enable the Linux container

Before installing anything, enable Crostini:

  1. Open the ChromeOS Settings app.
  2. Navigate to About ChromeOS, then select Developers.
  3. Click Set up beside Linux development environment and complete the prompts. ChromeOS will download the Debian container and launch a Terminal window.

All commands listed below should be executed inside that Terminal.

Quick path

  1. Run the installer script to install (it handles provisioning a compatible Node version automatically):

    curl -fsSL https://openclaw.ai/install.sh | bash
    
  2. Complete onboarding and set up the service:

    openclaw onboard --install-daemon
    
  3. Verify that the Gateway is active:

    openclaw gateway status
    

For comprehensive server instructions, refer to the Linux guide and the Gateway runbook.

Prefer the native install over Docker

For a Chromebook with a single user, choose the native npm installation (the installer script, or npm i -g openclaw@latest --allow-scripts=openclaw when using npm 12 or npm 11.16+) instead of Docker. If you are on npm 11.15 or older, leave out --allow-scripts=openclaw.

Docker does function inside Crostini, but it introduces complications: when the Claude Code CLI serves as your model runtime, it must be installed and authenticated within a persisted container home, which can be lost if the container gets rebuilt. With a native install, the CLI and its credentials live directly on the Crostini filesystem, so rebuilding a Docker image will not erase them.

Node version

The Node version bundled with a Crostini container might fall below OpenClaw's requirements. OpenClaw needs Node 22.22.3+, Node 24.15+, or Node 25.9+; Node 26 is the recommended choice. The installer script checks for an absent or incompatible Node version and installs a supported release on its own.

If you installed Node manually before OpenClaw, update it prior to installing OpenClaw:

node -v

Check Node install guidance for the list of supported versions.

Provider keys and environment variables

The Gateway operates as a systemd user service, so an export VAR=... set in an interactive Terminal will not carry over to the service that is already installed.

Place provider keys in ~/.openclaw/.env instead, with one key per line:

DEEPSEEK_API_KEY=your-key-here

After that, restart the service so it can read the new values:

openclaw gateway restart

See Environment variables for the complete precedence and source rules.

Crostini is not always on

Avoid treating Crostini as a permanently running host. Following a ChromeOS reboot, open the Terminal once to start the Linux environment before you depend on the Gateway.

Then confirm the service status:

openclaw gateway status
543 words · updated Aug 25, 2026