Windows (WSL2)

WindowsでのOpenClawはWSL2経由(Ubuntu推奨)での利用が推奨されます。CLI+GatewayはLinux内で動作するため、ランタイムの一貫性が保たれ、ツールの互換性も大幅に向上します(Node/Bun/pnpm、Linuxバイナリ、スキル)。ネイティブWindowsは扱いにくい場合があります。WSL2なら完全なLinux環境が手に入ります — インストールはコマンド一つ:wsl --install

ネイティブWindowsコンパニオンアプリは計画中です。

インストール(WSL2)

ネイティブWindowsの状況

ネイティブWindowsのCLIフローは改善が進んでいますが、WSL2が引き続き推奨パスです。

現在ネイティブWindowsで問題なく動作するもの:

  • install.ps1によるWebサイトインストーラー
  • openclaw --versionopenclaw doctoropenclaw plugins list --jsonなどのローカルCLI操作
  • 組み込みのlocal-agent/providerスモークテスト:
openclaw agent --local --agent main --thinking low -m "Reply with exactly WINDOWS-HATCH-OK."

現時点の注意点:

  • openclaw onboard --non-interactive--skip-healthを渡さない限り、到達可能なローカルGatewayを期待する
  • openclaw onboard --non-interactive --install-daemonopenclaw gateway installはまずWindowsスケジュールタスクを試行
  • スケジュールタスクの作成が拒否された場合、OpenClawはユーザーごとのスタートアップフォルダのログインアイテムにフォールバックし、Gatewayを即座に起動
  • schtasks自体がフリーズまたは応答停止した場合、OpenClawはそのパスを素早く中止してフォールバック
  • 利用可能な場合、スケジュールタスクはより良いスーパーバイザーステータスを提供するため引き続き優先される

GatewayサービスのインストールなしでネイティブCLIのみを使用する場合:

openclaw onboard --non-interactive --skip-health
openclaw gateway run

ネイティブWindowsでマネージド起動が必要な場合:

openclaw gateway install
openclaw gateway status --json

スケジュールタスクの作成がブロックされた場合でも、フォールバックサービスモードが現在のユーザーのスタートアップフォルダを通じてログイン後に自動起動します。

Gateway

Gatewayサービスのインストール(CLI)

WSL2内で:

openclaw onboard --install-daemon

または:

openclaw gateway install

または:

openclaw configure

プロンプトでGateway serviceを選択します。

修復/移行:

openclaw doctor

Windowsログイン前のGateway自動起動

ヘッドレスセットアップでは、誰もWindowsにログインしなくても完全な起動チェーンが実行されるようにします。

1) ログインなしでユーザーサービスを維持する

WSL内で:

sudo loginctl enable-linger "$(whoami)"

2) OpenClaw Gatewayユーザーサービスをインストールする

WSL内で:

openclaw gateway install

3) Windows起動時にWSLを自動起動する

PowerShellを管理者として:

schtasks /create /tn "WSL Boot" /tr "wsl.exe -d Ubuntu --exec /bin/true" /sc onstart /ru SYSTEM

Ubuntuをお使いのディストロ名に置き換えてください:

wsl --list --verbose

起動チェーンの確認

再起動後(Windowsサインイン前)、WSLから確認:

systemctl --user is-enabled openclaw-gateway
systemctl --user status openclaw-gateway --no-pager

上級者向け:WSLサービスをLANに公開する(portproxy)

WSLは独自の仮想ネットワークを持っています。別のマシンからWSL内で実行しているサービス(SSH、ローカルTTSサーバー、Gateway)に到達する必要がある場合、WindowsポートをWSLの現在のIPに転送する必要があります。WSLのIPは再起動後に変わるため、転送ルールの更新が必要になる場合があります。

例(PowerShellを管理者として):

$Distro = "Ubuntu-24.04"
$ListenPort = 2222
$TargetPort = 22

$WslIp = (wsl -d $Distro -- hostname -I).Trim().Split(" ")[0]
if (-not $WslIp) { throw "WSL IP not found." }

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=$ListenPort `
  connectaddress=$WslIp connectport=$TargetPort

Windowsファイアウォールでポートを許可(初回のみ):

New-NetFirewallRule -DisplayName "WSL SSH $ListenPort" -Direction Inbound `
  -Protocol TCP -LocalPort $ListenPort -Action Allow

WSL再起動後にportproxyを更新:

netsh interface portproxy delete v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 | Out-Null
netsh interface portproxy add v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 `
  connectaddress=$WslIp connectport=$TargetPort | Out-Null

注意:

  • 別のマシンからのSSHはWindowsホストIPを対象にします(例:ssh user@windows-host -p 2222)。
  • リモートノードは到達可能なGateway URL(127.0.0.1ではなく)を指す必要があります。openclaw status --allで確認してください。
  • LAN アクセスにはlistenaddress=0.0.0.0を使用、ローカルのみなら127.0.0.1を使用。
  • 自動化したい場合は、ログイン時にこの更新ステップを実行するスケジュールタスクを登録。

WSL2のステップバイステップインストール

1) WSL2 + Ubuntuをインストールする

PowerShell(管理者)を開く:

wsl --install
# またはディストロを明示的に指定:
wsl --list --online
wsl --install -d Ubuntu-24.04

Windowsが求めたら再起動してください。

2) systemdを有効にする(Gatewayインストールに必要)

WSLターミナルで:

sudo tee /etc/wsl.conf >/dev/null <<'EOF'
[boot]
systemd=true
EOF

PowerShellから:

wsl --shutdown

Ubuntuを再度開き、確認:

systemctl --user status

3) OpenClawをインストールする(WSL内)

WSL内でLinuxのはじめにフローに従います:

git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # 初回実行時にUI依存関係を自動インストール
pnpm build
openclaw onboard

完全ガイド:はじめに

Windowsコンパニオンアプリ

Windowsコンパニオンアプリはまだありません。開発に協力いただける方を歓迎します。