A native Windows companion for running an OpenClaw node host with a friendly tray experience and a scriptable CLI. The app wraps the upstream openclaw CLI (it does not replace it).
Screenshots below use a demo state/config in dark mode, so the UI can be previewed without a live gateway.
| Connection | Node Host |
|---|---|
![]() |
![]() |
| Canvas | Approvals |
|---|---|
![]() |
![]() |
| Chrome Relay | Logs |
|---|---|
![]() |
![]() |
- One-click connect/disconnect toggle (double-click to toggle)
- Color-coded status icons: Connected (green) / Disconnected (gray) / Degraded (yellow) / Error (red)
- Balloon notifications on status changes (with cooldown to avoid spam)
- Quick access menu: Connect, Disconnect, Open Settings, Open Logs, Open Control UI, Quit
- Connection tab: Gateway host/port, TLS settings, display name, Control UI URL
- Secure token storage: Gateway token encrypted with Windows DPAPI
- Gateway connectivity test: Checks DNS, TCP, TLS, HTTP, and WebSocket connectivity
- Auto-start at login: Registers itself in Windows startup
- Theme: Follows system setting by default, or set to dark/light manually
- Install/Uninstall the node host service
- Start/Stop with proper process lifecycle handling
- Option to hide the console window and capture output to a local log file
- In-app UI for reviewing and approving exec requests
- Local history and policy controls
- Embedded Canvas via WebView2
- Snapshots and JS eval support
- Screen capture with lightweight recording
- Visible indicator when recording is active
- Configure relay port
- Verify relay connectivity with guided verification
- Quick access to chrome://extensions and extension folder
- View node host output directly in the app (last 200 lines)
- Open logs folder
- Export diagnostics: Creates a ZIP bundle with redacted config and all log files
- Token missing? Banner prompts you to add it in settings
- Pairing required? Banner links to Control UI for device approval
openclaw-win status
openclaw-win configure --host <gateway-host> --port 443 --tls --token <gateway-token> --display-name "My Windows Node"
openclaw-win configure --system-theme | --dark-theme | --light-theme
openclaw-win connect
openclaw-win disconnect
openclaw-win toggle
openclaw-win logs --tail --lines 200
openclaw-win doctor
openclaw-win ui show
openclaw-win ui show --tab approvals
openclaw-win ui tabs
Exit codes:
0connected/success2disconnected3degraded (running but not connected)10config missing11openclaw missing12auth/token error13pairing required
src/OpenClaw.Win.Core— Core services (config, token storage, node status, gateway tests)src/OpenClaw.Win.Cli— CLI entry (openclaw-win.exe)src/OpenClaw.Win.App— WPF tray app and settings UI
- Windows 10/11
- .NET 8 SDK
openclawCLI installed and available on PATH
dotnet build OpenClawWindowsNodeManager.sln -c Release
- Version is managed in
Directory.Build.propsvia<Version>. - Pushing a commit to
mainthat changes<Version>triggers.github/workflows/release.yml. - The workflow runs the gate, builds a
win-x64package, and creates/updates the matching GitHub release. - You can also run the release workflow manually with Actions → Release → Run workflow.
- Tray app:
src/OpenClaw.Win.App/bin/Release/net8.0-windows/OpenClaw.Win.App.exe - CLI:
src/OpenClaw.Win.Cli/bin/Release/net8.0-windows/openclaw-win.exe
openclaw-win ui show— open the settings windowopenclaw-win ui show --tab connectionopenclaw-win ui show --tab node-hostopenclaw-win ui show --tab canvasopenclaw-win ui show --tab approvalsopenclaw-win ui show --tab chrome-relayopenclaw-win ui show --tab logsopenclaw-win ui tabs— list supported tab names
The companion stores data under:
%AppData%\OpenClaw\WindowsCompanion
Files:
config.json— connection and UI settingstoken.dat— gateway token (DPAPI protected)logs/app.logandlogs/node.loglogs/node-host.log— captured node host output (when enabled)diagnostics/— exported diagnostic bundles
If personal-config.json exists alongside the tray app binary, the app will seed
config.json on first launch. Use personal-config.example.json as a template
and keep your personal personal-config.json untracked.
- Gateway token is stored using Windows DPAPI (CurrentUser scope)
- Tokens are never written to logs
- Diagnostics export redacts secrets
- Connected: node host is running and connected to the gateway
- Degraded: node host is running but gateway is unreachable or disconnected
- Disconnected: node host is stopped
- Error: configuration or authentication error detected
The companion uses the upstream CLI for lifecycle management:
openclaw node installto set up background runneropenclaw node restartto connectopenclaw node stopto disconnectopenclaw node status --jsonfor status
- Run
openclaw-win doctorfor a quick environment check - Ensure
openclawis on PATH (where openclaw) - If status shows pairing required, approve the device in the gateway UI or via
openclaw devices list/openclaw devices approve <requestId> - Pairing for the Control UI does not automatically pair the Windows CLI device — the app needs its own device approval
- Capture sensors (camera/location/SMS) once permissions UX is defined





