A native Windows desktop app for the OpenClaw gateway.
No browser tabs. No web UI. Just a clean, local desktop experience.
OpenClaw Desktop wraps the OpenClaw gateway dashboard in a native Electron window. It connects to your locally running OpenClaw gateway, automatically authenticates, and gives you the full Control UI without opening a browser.
- Automatically detects and connects to your local gateway
- Fetches a secure token via the CLI — no manual copy-paste
- Starts the gateway for you if it's not already running
- System tray integration — runs quietly in the background
- Single-instance lock — only one window at a time
- Recovery page with gateway controls if something goes wrong
If you've never used OpenClaw before, you'll need to set it up once before the desktop app can connect. This takes about 2 minutes.
Download and install Node.js 18+ from nodejs.org. This is required to run the OpenClaw CLI and to build the desktop app.
npm install -g openclawopenclaw onboardThis interactive wizard walks you through:
- Choosing an AI provider (OpenAI, Anthropic, OpenRouter, local models via Ollama, and many more)
- Entering your API key
- Setting up the gateway as a background service
- Optionally connecting messaging channels (Telegram, Discord, WhatsApp, etc.)
Once onboarding completes, your gateway is configured and ready.
openclaw gateway startThe gateway runs in the background on http://127.0.0.1:18789. On Windows, it registers as a Scheduled Task that auto-starts on login, so you typically only need to do this once.
Now you're ready to use OpenClaw Desktop. It will auto-detect the gateway, authenticate, and load the dashboard.
Already have OpenClaw set up? Skip to Quick Start below.
git clone https://github.com/RedWoodOG/openclaw-desktop.git
cd openclaw-desktop
npm install
npm run devThe app will build, launch, detect your gateway, grab a token, and load the dashboard.
npm run distThe packaged app lands in release/. You'll get a portable OpenClaw Desktop.exe that works without Node.js installed.
For a directory build (no installer, just the unpacked exe):
npm run packopenclaw-desktop/
src/
main.ts # Electron main process, window lifecycle, dashboard loading
gateway.ts # CLI command execution, health checks, gateway control
config.ts # Environment-based configuration with sensible defaults
preload.ts # Secure IPC bridge for the renderer
tray.ts # System tray icon and context menu
renderer/
status.html # Recovery/diagnostics page (fallback when dashboard fails)
build/
icon.ico # Windows app icon (multi-resolution)
icon.png # Window/taskbar icon
tray-icon.png # System tray icon
All settings have sensible defaults. Override with environment variables if needed:
| Variable | Default | Description |
|---|---|---|
OPENCLAW_GATEWAY_URL |
http://127.0.0.1:18789 |
Gateway base URL |
OPENCLAW_CLI_PATH |
%APPDATA%\npm\openclaw.cmd |
Path to the OpenClaw CLI |
OPENCLAW_WORKDIR |
%USERPROFILE%\.openclaw |
OpenClaw working directory |
- Startup — checks gateway health via HTTP (
/health) and CLI (openclaw gateway status) - Auto-start — if the gateway isn't running, runs
openclaw gateway startand waits - Token fetch — calls
openclaw dashboard --no-opento get a secure tokenized URL - Dashboard load — loads the tokenized URL in the Electron window; the dashboard SPA handles authentication from the URL hash
- Fallback — if anything fails, shows a recovery page with gateway status and control buttons
| Command | What it does |
|---|---|
npm run dev |
Build + launch the app |
npm run build |
Compile TypeScript to dist/ |
npm start |
Launch without rebuilding (uses existing dist/) |
npm run pack |
Build + package as unpacked directory |
npm run dist |
Build + package as Windows installer |
npm run typecheck |
Type-check without emitting |
Pull requests welcome. If you're adding a feature:
- Fork the repo
- Create a branch (
git checkout -b my-feature) - Make your changes
- Run
npm run typecheckto verify - Submit a PR