Aplite.ai

Blog

OpenClaw install on Windows and Mac: what the installer does, where it breaks, and the hosted way around it

Two installers, one gateway: the Mac path through Homebrew and a LaunchAgent, the Windows path through winget and a Scheduled Task.
Two installers, one gateway: the Mac path through Homebrew and a LaunchAgent, the Windows path through winget and a Scheduled Task.

Search for openclaw install windows or openclaw install mac and the first page is vendors: Kimi’s guide ends at its own cloud and still says Node 22.14, Parallels wants you in a VM, hosting blogs want you on their server. The official answer is spread over five docs pages. This one puts it in order: what the two installer scripts do step by step, the requirements that changed in September, the errors people hit with their real text, and a checklist for the end. Everything about OpenClaw is from the OpenClaw docs and the scripts themselves, read on 20 October 2026 (release 2026.10.5).

Requirements, as of October 2026

  • Node 24.16 or newer, or 26.1 or newer. Node 22, 23 and 25 are unsupported since 2026.9.3, because their node:sqlite silently truncates text at an embedded NUL (Node.js compatibility). The installer adds Node when it is missing: 26 via Homebrew on a Mac, the LTS line via winget on Windows.
  • Windows: PowerShell 5 or newer for the script; Windows 10 20H2 or 11 for the Windows Hub app. WSL2 is optional, not required (Windows).
  • Mac: the CLI runs where Node runs, macOS 13.5 or newer; the menu bar app needs macOS 26.2 Tahoe (macOS app).
  • Git, even for an npm install: the installer checks for it so dependencies from git URLs do not fail with spawn git ENOENT.
  • A model: a provider API key, a Claude Code or Codex login, or Ollama. Every route, including the free ones: OpenClaw without an API key.

Which path

On Windows the docs recommend the Windows Hub app (OpenClawCompanion-Setup-x64.exe, 2026.9.8-1 on 7 October): no administrator rights, and Set up locally creates its own WSL distro, OpenClawGateway. The PowerShell script gives a native CLI and a gateway kept alive by a Scheduled Task; WSL2 runs the Mac/Linux script. On a Mac: the menu bar app (2026.10.5 ships Apple Silicon, Intel and Universal DMGs) or the curl script, which installs a LaunchAgent. This page follows the scripts.

What install.sh does on a Mac

About five minutes by the getting started page. The flow, from installer internals and the script:

  1. Run it in Terminal:

    curl -fsSL https://openclaw.ai/install.sh | bash
    
  2. Node. The script checks the version and the linked SQLite. If Node is missing it installs Homebrew first (that needs an Administrator account) and then brew install node, which is Node 26. An nvm install is reused when compatible; with nvm present but no compatible version it offers nvm install 26 and never installs a second nvm.

  3. Git via Homebrew if missing, then npm install -g openclaw@latest, with --allow-scripts=openclaw added on npm 11.16 and newer. A failed build pulls in Xcode Command Line Tools and retries.

  4. Onboarding. On a fresh install it hands over to openclaw onboard; Quick start finds a Claude Code or Codex login or a key, checks it with a real completion and opens the dashboard. On an existing install it runs openclaw doctor --fix and restarts the gateway service instead.

  5. Keep it running. Quick start leaves the gateway in the foreground. Press Ctrl+C, then:

    openclaw gateway install
    openclaw gateway status
    

    The first installs a LaunchAgent; the second should show the gateway listening on port 18789.

What install.ps1 does on Windows

  1. Run it in PowerShell (no execution-policy change needed for this form):

    iwr -useb https://openclaw.ai/install.ps1 | iex
    
  2. Node. If missing: winget, then Chocolatey, then Scoop. If all three are absent or leave an unsupported version, the script downloads the official Node 26 zip into %LOCALAPPDATA%\OpenClaw\deps\portable-node and adds it to your user PATH.

  3. OpenClaw by npm install -g, launched from a temp directory so a shell opened in C:\ still works. If Git is missing on the git install method, a user-local MinGit goes under %LOCALAPPDATA%\OpenClaw\deps\portable-git.

  4. PATH and doctor. The bin directory goes on your user PATH; on upgrades it runs openclaw doctor --fix --non-interactive. A failure stops with a terminating error and leaves the window open.

  5. Onboarding, as on the Mac. Then the service:

    openclaw gateway install
    openclaw gateway status --json
    

    This registers a Scheduled Task, “OpenClaw Gateway”, that runs as you before login without storing a password. If task creation is denied you get a Startup-folder item instead, which only starts after you log in; run the install from an elevated terminal to get the boot task.

Where it breaks

The error text as it appears, why, and the fix, with the source.

  • openclaw is not recognized on Windows, zsh: command not found: openclaw on a Mac. npm’s global bin directory is not on PATH, or the terminal predates the install. Reopen the terminal; still missing: npm config get prefix and add that directory to the user PATH on Windows (no \bin), on a Mac export PATH="$(npm prefix -g)/bin:$PATH" in ~/.zshrc (docs).
  • npm error spawn git ENOENT on Windows. Git is missing, so a dependency from a git URL cannot be cloned. Rerun the script so it bootstraps MinGit, or install Git for Windows and reopen PowerShell (docs). January’s node.exe : npm error code ENOENT was the installer calling npm through node.exe (#3917, #11049); gone since.
  • Error: Could not find a package manager (winget, choco, or scoop). Windows without winget, and the window closed before you could read it (#38054, March). Fixed since: the script downloads portable Node, and the piped form keeps the window open. If it recurs, install winget from the Store or Node from nodejs.org.
  • Node 22.22.0: node:sqlite truncates TEXT at embedded NUL (nodejs/node#61954); use 24.16+/26.1+ or a build with the fix, with a v before the number on Windows. Node below the September floor. Let the installer provision Node, or answer Y to the CLI’s Update NodeJS: Y/N [N]: prompt; a private runtime lands in ~/.openclaw/tools/cli-node.
  • blocked because they are not covered by allowScripts. A manual npm install -g openclaw on npm 12. Add --allow-scripts=openclaw; npm approve-scripts does not work for global installs (docs).
  • npm.ps1 cannot be loaded because running scripts is disabled on this system, same for openclaw.ps1. Running npm or openclaw by hand under the Restricted policy Windows client editions ship with; npm’s .ps1 shims are scripts, the piped installer is not. Set-ExecutionPolicy RemoteSigned -Scope CurrentUser, or call npm.cmd and openclaw.cmd (Microsoft).
  • You have not agreed to the Xcode license agreements, or the “install the command line developer tools” dialog on a Mac. npm needs git; without Command Line Tools, Apple’s /usr/bin/git shim opens the dialog, and the gateway runs git at every start even with update checks off (#31527, #158099, open). xcode-select --install, finish the dialog, rerun; sudo xcodebuild -license only if full Xcode is installed.

Two more, after the install rather than during it. On Windows a Scheduled Task that reports success proves nothing, “A successful task result alone does not prove the Gateway is healthy”: read openclaw gateway status --json and the gateway log, as the 2026.9.1 update taught (#137813). On a Mac an open issue has the LaunchAgent reach ready, get SIGTERM a second later and loop, while the same build is stable in the foreground (#144094, 2026.8.2 and 9.3); openclaw gateway run tells the two apart. On 2026.9.4 on Windows, read the docs’ note on updating before openclaw update.

After the install: a checklist

  1. openclaw --version prints 2026.10.5 or whatever you asked for.
  2. openclaw doctor has nothing red; openclaw doctor --fix repairs what it can.
  3. openclaw gateway status shows the gateway on port 18789, from a new terminal.
  4. openclaw dashboard opens the Control UI and a typed message gets a reply.
  5. The gateway is bound to 127.0.0.1, which is the default: do not forward 18789 on your router (security).
  6. A first channel: OpenClaw in Telegram in five minutes. An unknown sender gets a pairing code until you approve them.
  7. The machine stays on. Sleep, a closed lid and OS updates stop the gateway; the upstream FAQ says to use a VPS after disconnects (providers and hosting).
  8. When something is off, openclaw triage runs read-only checks and writes a diagnosis for Claude Code, Codex or the built-in agent.

Without installing anything

Aplite runs a standard OpenClaw instance for you: one gateway in its own container on our server in Nuremberg, currently 2026.9.8, set up from the browser.

  1. Create an account with email or Google; no card on the Free plan.
  2. Pick an agent and press Deploy; the workspace opens about a minute later.
  3. Ask. There is no Node, no PATH, no key to paste: models come through one metered account, billed in credits, 1 credit = 1¢, token usage under each reply.

What a managed instance gives up, the shell, raw openclaw.json, local models and day-one releases, is in Managed OpenClaw vs self-hosting; other hosts are in Managed OpenClaw hosting compared. Aplite is independent and not affiliated with the OpenClaw project.

FAQ

Does OpenClaw run on Windows?

Yes, three ways: the Windows Hub desktop app, which creates its own WSL distro; the PowerShell installer, a native CLI and a gateway kept alive by a Scheduled Task; or WSL2 with the Linux script. The docs recommend the Hub for desktop use.

Do I need WSL2 to install OpenClaw on Windows?

No. The PowerShell script installs a native gateway. WSL2 is the most Linux-compatible option and what the Hub uses underneath, but it is not required.

Which Node version does OpenClaw need?

Node 24.16 or newer, or 26.1 or newer; Node 26 is recommended. Node 22, 23 and 25 are unsupported since release 2026.9.3. The installer provisions a supported Node when yours is missing or too old.

Does OpenClaw work on an Intel Mac or an older macOS?

The CLI and gateway run wherever Node 24 or 26 runs, which Node builds for macOS 13.5 and newer, on Intel and Apple Silicon. The menu bar app needs macOS 26.2 Tahoe; on an older Mac use the script.

Why does PowerShell say openclaw is not recognized after the install?

The global npm bin directory is not on the PATH of that window. Open a new PowerShell first; if it still fails, run npm config get prefix and add that directory to your user PATH, then reopen.

Can I try OpenClaw without installing it?

Yes. A managed host runs the gateway for you; on Aplite that is an account, Deploy and a chat, on the Free plan without a card. The trade-offs are above.

Try it in your workspace

Get started