Platform Support Overview: Gateway and Companion Apps
OpenClaw's core is TypeScript with Node as the recommended runtime, plus an opt-in Bun path. This page maps companion apps, OS install guides, and VPS hosting options so you can pick the right target.
Read this when
- Looking for OS support or install paths
- Deciding where to run the Gateway
OpenClaw's core is implemented in TypeScript. The primary, default, and recommended runtime is Node. As an explicit opt-in, Bun 1.4+ builds that include WAL-reset-safe node:sqlite are able to run the CLI, Gateway, and managed node host; refer to Bun.
Companion apps are available for Linux, Windows Hub, macOS (a menu bar app), and mobile nodes (iOS/Android). For Windows, pick Windows Hub if you want the desktop app, a native PowerShell install if you work mainly in the terminal, or WSL2 when you need the most Linux-compatible Gateway runtime.
Choose your OS
- Android: Android
- ChromeOS: ChromeOS (Crostini)
- iOS: iOS
- Linux: Linux
- macOS: macOS
- Omarchy: Omarchy
- Windows: Windows
VPS and hosting
- VPS hub: VPS hosting
- Azure (Linux VM): Azure
- Daytona (cloud sandbox): Daytona
- EasyRunner (Podman + Caddy): EasyRunner
- exe.dev (VM + HTTPS proxy): exe.dev
- Fly.io: Fly.io
- GCP (Compute Engine): GCP
- Hetzner (Docker): Hetzner
Common links
- Install guide: Getting Started
- Windows Hub: Windows
- Gateway runbook: Gateway
- Gateway configuration: Configuration
- Service status:
openclaw gateway status
Gateway service install (CLI)
Any of the following works (each is supported):
- Wizard (recommended):
openclaw onboard --install-daemon - Direct:
openclaw gateway install - Configure flow:
openclaw configure→ choose Gateway service - Repair/migrate:
openclaw doctor(can install the service or fix it)
Which service gets targeted varies by OS:
- macOS: LaunchAgent (
ai.openclaw.gateway, orai.openclaw.<profile>when using a named profile) - Linux/WSL2: systemd user service (
openclaw-gateway[-<profile>].service) - Native Windows: Scheduled Task (
OpenClaw GatewayorOpenClaw Gateway (<profile>)), and if task creation is refused, a per-user login item in the Startup folder serves as a fallback