Haven't installed OpenClaw yet? Click here for one-line install commands
curl -fsSL https://openclaw.ai/install.sh | bash
iwr -useb https://openclaw.ai/install.ps1 | iex
curl -fsSL https://openclaw.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
Worried about affecting your computer? ClawTank runs in the cloud with no installation required, eliminating accidental deletion risks
Key Findings
  • OpenClaw can be installed on native Windows 11 (non-WSL2) via a single PowerShell command; the installer automatically detects the system's existing Node.js and installs openclaw as a global npm package
  • After installation, running openclaw onboard launches an interactive setup wizard that can complete Telegram integration, Gateway mode selection, and basic configuration in one step within the native terminal
  • The root cause of Dashboard failing to open is not a browser issue, but rather the Gateway service not running -- openclaw dashboard only opens a browser to connect to the local WebSocket server; if the Gateway isn't running, there's no endpoint to connect to
  • In the native Windows environment, Gateway persistence requires running openclaw gateway install with administrator privileges (relies on schtasks underneath), or using foreground mode openclaw gateway for quick verification

1. Why Choose Native Windows Installation

OpenClaw's official documentation and community tutorials overwhelmingly focus on macOS, Linux, and WSL2 environments[1]. This makes sense -- OpenClaw's core architecture originates from the Unix ecosystem, Gateway daemon management relies on systemd, and Node.js with Shell toolchains runs more maturely on POSIX systems.

But reality tells a different story: a large number of enterprise users work on Windows daily. According to StatCounter's January 2026 data, Windows still holds a commanding 72% share of global desktop operating system market share. For technical decision-makers who need to quickly verify OpenClaw's capabilities, requiring them to first install WSL2, set up an Ubuntu subsystem, and deal with cross-system file access and network bridging issues -- this extra technical hurdle is often enough to delay or prevent the evaluation process entirely.

This article documents our complete journey of installing, configuring, troubleshooting, and successfully connecting to the Dashboard on Windows 11 Pro (Build 26100), without using WSL2 at all, using the native PowerShell environment. This is not an idealized tutorial -- it's a real installation journal, including every sticking point we encountered and its corresponding solution.

2. Installation Process: From PowerShell One-Line Command to Doctor Diagnosis

2.1 One-Line Command Installation

Open PowerShell as Administrator and execute the official installation script[1]:

iwr -useb https://openclaw.ai/install.ps1 | iex

The installer behaves as follows:

  1. Detects operating system: Identifies a Windows environment
  2. Checks Node.js: Finds Node.js v24.13.1 already installed on the system, skips Node.js installation
  3. Installs OpenClaw: Performs a global install via npm install -g openclaw@latest, version 2026.2.23
  4. Auto-runs Doctor: Automatically runs openclaw doctor for environment diagnostics after installation

The entire installation process took about 30 seconds with no manual intervention required.

2.2 Doctor Diagnostic Report Interpretation

The Doctor report automatically triggered by the installer showed the following status:

openclaw doctor

[PASS] Node.js version: v24.13.1 (>= 22 required)
[PASS] openclaw version: 2026.2.23
[FAIL] Gateway not configured
[FAIL] Gateway not running
[FAIL] Gateway service not installed
[FAIL] OAuth directory missing
[FAIL] Session store directory missing
[WARN] Memory search needs embedding provider

Six FAILs, one WARN. For a first-time installation, these results are completely normal -- the Gateway hasn't been configured, the service hasn't been registered, and OAuth and Session directories haven't been created. These are all things the openclaw onboard interactive setup wizard handles. Notable is the Memory search WARN: this indicates the semantic search feature requires an additional embedding provider (such as OpenAI or a local model), an advanced feature that doesn't affect basic operation.

3. Onboard Interactive Setup

After Doctor confirms the base environment is ready, run the interactive setup wizard:

openclaw onboard

openclaw onboard is an interactive program that requires a TTY terminal (this is also why it fails in SSH or headless environments -- see Pitfall #1 in our earlier Deployment Guide). In native Windows PowerShell, the interactive wizard works normally, guiding through the following setup steps in sequence:

3.1 Communication Channel Setup -- Telegram Bot

The Onboard wizard asks which communication channel to connect. We selected Telegram and entered the Bot Token obtained in advance from @BotFather[6]. The wizard automatically writes the Token to the channels.telegram section of %USERPROFILE%\.openclaw\openclaw.json and enables the Telegram plugin.

3.2 Gateway Mode Selection

The wizard asks for the Gateway operating mode. We selected local -- Gateway runs on the local machine, not through a cloud relay[2]. This is the most suitable mode for local testing, with all data transmission staying within the local network.

? Gateway mode: local
Setting gateway.mode to local...

After Onboard completion, the configuration file is ready. But the next step -- launching the Dashboard for verification -- is where we hit our first major obstacle.

4. Dashboard Won't Open: Root Cause Analysis of the Gateway Startup Issue

4.1 Symptom Description

After Onboard completion, we ran:

openclaw dashboard

The system default browser opened a URL:

http://127.0.0.1:18789/#token=eyJhbGci...

But the browser page closed almost immediately, or displayed a connection failure. Repeated attempts yielded the same result.

4.2 Root Cause Analysis

The root cause of this phenomenon is not a browser compatibility issue, nor an expired token. The problem is that the Gateway service simply isn't running.

Understanding OpenClaw's architecture is crucial[2]: the openclaw dashboard command does not start any services itself -- it merely opens the browser, pointing the URL to the local WebSocket server (ws://127.0.0.1:18789). The Dashboard frontend is a static page that communicates with the Gateway via WebSocket. If the Gateway isn't listening on port 18789, the browser naturally cannot establish a connection, and the page immediately fails.

This is an easily overlooked implicit prerequisite: the Gateway is a required prerequisite for the Dashboard, but the output of the openclaw dashboard command doesn't explicitly indicate this.

4.3 Attempting to Start the Gateway Service

We sequentially tried the following commands:

# Attempt 1: Start Gateway service
openclaw gateway start
# Output: Gateway service missing

# Attempt 2: Install Gateway service
openclaw gateway install
# Output: Access is denied

The first command failed because the Gateway service hasn't been registered yet. The second command failed because openclaw gateway install internally calls Windows' schtasks tool to create a scheduled task[3], and schtasks requires administrator privileges. Our PowerShell at the time was not running as Administrator.

This reveals a key difference between native Windows and Linux environments: on Linux, OpenClaw uses systemd to manage daemon services, and users can register services in non-root mode via systemctl --user; but on Windows, OpenClaw relies on schtasks, and schtasks /Create is always denied in non-administrator PowerShell.

5. Three Paths to Starting the Gateway

After identifying the root cause, we've outlined three viable Gateway startup paths, suitable for different scenarios:

Path A: Foreground Mode (Simplest, for testing and verification)

Start the Gateway directly in foreground mode in the terminal:

openclaw gateway

The Gateway will start running in the foreground, listening on ws://127.0.0.1:18789. The terminal will continuously output logs, and closing the terminal window stops the service. This is the fastest way to verify -- no administrator privileges needed, immediately available.

If you want to continue working in the same PowerShell, you can run the Gateway in the background:

# PowerShell background execution
Start-Job -ScriptBlock { openclaw gateway }

We chose this path during our testing. After the Gateway started successfully, running openclaw dashboard again opened the Dashboard interface normally in the browser, with Telegram connection status showing "ok" -- problem completely resolved.

Path B: System Scheduled Task (Persistent, requires administrator privileges)

Open PowerShell as Administrator and run:

# Must run as Administrator
openclaw gateway install

This command calls schtasks /Create to create a Windows scheduled task[3], configured to automatically start the Gateway when the user logs in. Once installed, the Gateway will automatically run on every Windows startup without manual intervention.

Verify the scheduled task was created successfully:

# Check OpenClaw-related scheduled tasks
schtasks /Query /TN "OpenClaw*"

This is the recommended approach for production environments, but note: if your Windows account doesn't have administrator privileges (e.g., a standard user account in an enterprise environment), this path won't be available.

Path C: NSSM or Startup Script (Alternative)

For scenarios where schtasks isn't available but persistence is needed, you can use the third-party service manager NSSM (Non-Sucking Service Manager) to register openclaw gateway as a Windows service:

# After downloading NSSM
nssm install OpenClawGateway "C:\Program Files\nodejs\node.exe"
nssm set OpenClawGateway AppParameters "C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules\openclaw\bin\openclaw gateway"
nssm set OpenClawGateway AppDirectory "C:\Users\%USERNAME%"
nssm start OpenClawGateway

Or, the simplest alternative is to place a batch file in Windows' Startup folder:

# Create startup.bat, place in shell:startup directory
@echo off
start /min cmd /c "openclaw gateway"

Save this file to the %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\ directory, and the Gateway will automatically start when Windows logs in.

Comparison of the Three Paths

PathRequires AdminPersistentUse Case
A. Foreground modeNoNo (stops when terminal closes)Quick testing, feature verification
B. schtasks scheduleYesYes (auto-start on boot)Long-term use, production
C. NSSM / startup scriptNSSM requires; script does notYesNo admin but needs persistence

6. Doctor Report Interpretation and Further Optimization

After the Gateway starts successfully, run openclaw doctor again to confirm system status:

openclaw doctor

[PASS] Node.js version: v24.13.1
[PASS] openclaw version: 2026.2.23
[PASS] Gateway configured (mode: local)
[PASS] Gateway running on ws://127.0.0.1:18789
[PASS] Gateway service installed
[WARN] OAuth directory missing
[WARN] Session store directory missing
[WARN] Memory search needs embedding provider

Interpretation of the three WARNs:

6.1 OAuth directory missing

The OAuth directory stores authentication tokens for third-party services (e.g., Google Calendar, Notion integrations). If you don't need these third-party integrations, this warning can be safely ignored. If needed, running openclaw doctor --fix will automatically create the required directories.

6.2 Session store directory missing

The session store persists conversation sessions, ensuring in-progress conversations can be restored after Gateway restarts. This can also be fixed via openclaw doctor --fix. For testing environments, the absence of this directory means all in-progress conversations are lost after Gateway restarts, but basic functionality is unaffected.

6.3 Memory search needs embedding provider

This is a functional reminder rather than an error. OpenClaw's Memory layer supports semantic search -- when sufficient conversation history accumulates, the AI can retrieve past conversations through semantic similarity (rather than keyword matching). Enabling this feature requires configuring an embedding provider, for example:

# Use OpenAI's embedding model
openclaw config set memory.embedding.provider openai
openclaw config set memory.embedding.model text-embedding-3-small

Without configuration, OpenClaw still functions normally; only the semantic search feature is unavailable. For initial installation and feature verification stages, we recommend skipping this item.

7. Native Windows vs WSL2 Deployment Decision Matrix

After going through the complete native Windows installation process, we have sufficient hands-on data to compare the trade-offs of the two deployment paths. The following decision matrix is based on our team's actual deployment experience in both native Windows and WSL2 environments:

Evaluation DimensionNative WindowsWSL2
Installation complexityLow (one line PowerShell)Medium (must first enable WSL2 + install Ubuntu)
Gateway persistenceschtasks (requires admin) or NSSMsystemd (native support, no root needed)
File system accessNative NTFS, best performanceCross-system access has latency (/mnt/c/)
Browser automationDirectly uses system Chrome/EdgeRequires headless Chromium + Xvfb
Skills compatibilitySome Unix tools need alternativesFull Linux toolchain support
Network setupDirectly uses system networkNAT bridging, some ports need forwarding
Docker integrationRequires Docker DesktopNative Docker engine support
Best suited forQuick verification by tech decision-makers, non-dev rolesLong-term deployment, developers needing full Linux toolchain

Our recommendation: If your goal is to complete installation and verify OpenClaw's core capabilities (Dashboard control, Telegram integration, basic conversation) within 30 minutes, native Windows is the path of least resistance. If you plan to run OpenClaw long-term and use advanced features (browser automation, Claude Code integration, scheduled tasks), WSL2 provides more complete infrastructure support[4].

It's worth noting that these two paths are not mutually exclusive. Many users actually: first do a quick install on native Windows, experience the basic features, confirm OpenClaw meets their needs, then migrate to a WSL2 environment for formal deployment. OpenClaw's configuration file (openclaw.json) can be directly copied to the WSL2 environment for use.

Conclusion

Looking back at this installation journey, the entire process can be distilled into one core insight: the Gateway is the implicit prerequisite for all OpenClaw functionality, and the Gateway startup path in native Windows environments differs fundamentally from Linux.

The installation itself is painless -- one PowerShell command and it's done. The Onboard interactive setup is also quite intuitive. But between Onboard completion and Dashboard successfully connecting, there's a gap not sufficiently documented: the Gateway service needs to be started independently, and on Windows, service registration requires administrator privileges. This seemingly simple permissions issue, in the absence of clear error messages, is enough to waste significant time as users repeatedly fail at the Dashboard.

OpenClaw, as an open-source project still in rapid iteration[5], has native Windows support that's at the "usable but not polished" stage. The installer correctly detects the Windows environment and completes installation, the Onboard wizard works in PowerShell, and core features (Gateway, Dashboard, Telegram integration) all function on native Windows -- but the error handling, prompt messages, and documentation coverage surrounding these features still have clear room for improvement.

For technical decision-makers evaluating AI agent tools, this article provides a field-tested native Windows deployment path. If your team is considering including OpenClaw in your AI automation strategy evaluation, feel free to reach out to our research team for further discussion -- we will continue tracking OpenClaw's Windows platform support progress and best practices.