Windows
Windows 10 / 11 でのインストール、更新、Windows のスケジュールされたタスクとしての実行、およびアンインストール。
WSL2 を実行している場合は、代わりに Linux セットアップ に従うことができます。install.sh は WSL 上でも変更なく動作します。
setup.batに関する注意。#6118のハードストップ失敗(32ビットset /aによるディスク容量オーバーフローと、エスケープされていない括弧によるif/elseのパースエラー)は #6137 で修正され、v0.7.4 以降に同梱されています。現行リリースは正常に完了します。1点注意が残ります:setup.bat --prebuiltは prebuilt ブランチに到達する前に依然としてcargoを確認するため、手動 prebuilt パス(下記のオプション 1)が真の no-Rust インストールです。ソースからのビルド(オプション 3)も動作します。
インストール
オプション 1: プリビルドバイナリ(推奨)
最新の Windows リリース zip をダウンロードし、zeroclaw.exe を展開して PATH に配置してください。
PowerShell プロンプトから:
# インストールと PATH の設定はべき等です。zeroclaw がすでに
# 最新リリースでユーザーの PATH に含まれている場合、これらの手順はスキップされます。Quickstart は
# 最後に実行されます。
$ver = (Invoke-RestMethod 'https://api.github.com/repos/zeroclaw-labs/zeroclaw/releases/latest').tag_name.TrimStart('v')
$dst = "$env:USERPROFILE\.zeroclaw\bin"
$exe = "$dst\zeroclaw.exe"
$current = if (Test-Path $exe) {
((& $exe --version 2>$null) | Select-String -Pattern '\d+\.\d+\.\d+').Matches.Value
} else { '' }
if ($current -ne $ver) {
$url = "https://github.com/zeroclaw-labs/zeroclaw/releases/download/v$ver/zeroclaw-x86_64-pc-windows-msvc.zip"
New-Item -ItemType Directory -Force -Path $dst | Out-Null
Invoke-WebRequest -Uri $url -OutFile "$env:TEMP\zeroclaw.zip" -UseBasicParsing
Expand-Archive -Force -Path "$env:TEMP\zeroclaw.zip" -DestinationPath $dst
}
$environment = [Environment]
$userPath = $environment::GetEnvironmentVariable('Path', 'User')
if (($userPath -split ';') -notcontains $dst) {
$environment::SetEnvironmentVariable('Path', "$dst;$userPath", 'User')
}
if (($env:Path -split ';') -notcontains $dst) {
$env:Path = "$dst;$env:Path"
}
& $exe quickstart
Windows のビルド済み版とソース版の手順に共通する安定した動作については、標準的なインストール手順を参照してください。リリースの提供状況と PowerShell のダウンロードブロックは、GitHub 上の最新のアセットに依存するため、引き続きここに記載しています。
事前ビルド済みの zip は自己完結型であり、ソースからビルドする場合にのみ Visual Studio Build Tools が必要です。
インストール後、確認:
zeroclaw --version # matches the latest release
オプション 2: setup.bat(リリースから)
setup.bat --prebuilt
フラグ:
| フラグ | 動作 |
|---|---|
--prebuilt | GitHub Releases からプリビルドバイナリをダウンロード(到達すれば最速。現在のスクリプトはまず cargo をチェックします) |
--minimal | コアのみをビルド(チャンネルなし、ハードウェアなし) |
--dist | 軽量なリリース配布機能セットを構築する |
--default | Cargo のデフォルトのフィーチャーセットでビルドする |
--all | 登録されているすべての機能を使ってビルドする |
⚠️ 既知の問題(現行)。
setup.bat --prebuiltは、プレビルトのブランチに到達する前にcargoを依然としてチェックするため、オプション 2 では Rust 不要という約束が守られません。Rust ツールチェーンがない場合は、上記のオプション 1 を使用してください。履歴(
v0.7.4以前)。 それ以前のリリースには、#6118 で報告された 2 件のハードストップ障害とオンボーディングコマンドの不一致がありました。すなわち、32 ビットのset /aによるディスク容量オーバーフロー(Invalid number. Numbers are limited to 32-bits of precision.)、エスケープされていない括弧によるif/elseの解析エラー(.[0m was unexpected at this time.)、そして最後のzeroclaw initプロンプトです。これらはすべて #6137(v0.7.4 / 0.7.5 / 0.8.0)で修正されました。現在のリリースではzeroclaw quickstartが表示され、正常に完了します。
オプション 3: ソースから
Rust (rustup) および Visual Studio Build Tools が必要です。
git clone https://github.com/zeroclaw-labs/zeroclaw
cd zeroclaw
cargo install --locked --path .
zeroclaw quickstart
オプション4: Scoop
scoop bucket add zeroclaw https://github.com/zeroclaw-labs/scoop-zeroclaw
scoop install zeroclaw
zeroclaw quickstart
オプション 5: Docker
ZeroClaw は Linux コンテナイメージを ghcr.io/zeroclaw-labs/zeroclaw:latest(タグ付きリリースの場合は :vX.Y.Z)で公開しています。Windows では、Docker Desktop 経由、または WSL ディストリビューション内で sudo apt install docker.io を実行して動作させます。どちらも機能し、コンテナの動作は同一です。
クイックスタート:
# 設定 + ワークスペース用の永続ボリューム。コンテナ内の ZeroClaw のデータディレクトリは /zeroclaw-data
docker run -d --name zeroclaw `
--restart=unless-stopped `
-p 42617:42617 `
-v zeroclaw-data:/zeroclaw-data `
ghcr.io/zeroclaw-labs/zeroclaw:latest
# 初回起動時のログを監視
docker logs -f zeroclaw
# ヘルスチェック(認証不要)
curl http://localhost:42617/health
# (オプション)クライアントをペアリングする。注意: 公開イメージはデフォルトで
# `require_pairing = false` になっているため、デフォルトではペアリングコードは発行されず、
# `/api/*` は認証なしでリクエストを受け付けます。ペアリングを有効にするには、
# 設定を上書きし(コンテナ内の /zeroclaw-data/.zeroclaw/config.toml で
# `require_pairing = true` を設定)、再起動します。その後、初回起動時に
# ワンタイムコードが stdout に出力され、クライアントはそれを `/pair` に POST します:
curl -X POST http://localhost:42617/pair -H 'X-Pairing-Code: <code-from-logs>'
イメージの事実(ghcr.io/zeroclaw-labs/zeroclaw:latest に対して検証済み):
- ベース:
gcr.io/distroless/cc-debian13:nonroot(リリースステージ;devステージはdebian:trixie-slim) ENTRYPOINT ["zeroclaw"],CMD ["daemon"]: 引数なしで実行するとデーモンとゲートウェイを起動しますEXPOSE 42617: デーモンとゲートウェイの両方がこのポートでリッスンします- データディレクトリ:
/zeroclaw-data(設定:/zeroclaw-data/.zeroclaw/config.toml、ワークスペース:/zeroclaw-data/workspace)。永続化のために名前付きボリュームまたはバインドをここにマウントしてください。これは not/root/.zeroclawであることに注意してください。 - ペアリング: 公開イメージはデフォルトで
require_pairing = falseのため、/api/*はすぐに認証なしでリクエストを受け付けます。ペアリングを有効にする場合(/zeroclaw-data/.zeroclaw/config.tomlでrequire_pairing = trueを設定して再起動)、デーモンは初回起動時にワンタイムコードを stdout に出力し、クライアントはそのコードをX-Pairing-Codeヘッダー付きで/pairに POST してから、認証が必要なエンドポイントが応答します。 - Webダッシュボード: 公開イメージではデフォルトでバンドルされ、提供されます。イメージは
gateway.web_dist_dir = "/usr/share/zeroclawlabs/web/dist"を設定し、そこにビルド済みフロントエンドを含んでいるため、gatewayは追加設定なしでSPAフォールバックを提供します。アセットは/zeroclaw-dataマウントポイントの外側にあるため、-v …:/zeroclaw-dataボリュームマウントでそれらをシャドウすることはできません (ref #6400)。
同梱のDockerfileを使用してソースからビルド:
git clone https://github.com/zeroclaw-labs/zeroclaw
cd zeroclaw
docker build -t zeroclaw:local -f Dockerfile.debian .
Windows + Docker で検証済み:
- コンテナの動作は Linux と一致します。 Windows 11 ビルド 26200.8313 上の WSL Debian で
ghcr.io/zeroclaw-labs/zeroclaw:latestをプルして実行しました。イメージは正常に起動し、ゲートウェイは:42617でリッスンし、/healthは有効な JSON を返します。設定でrequire_pairing = trueを指定してコンテナを再起動したところ、/pairのペアリングコードフローもドキュメントどおりに動作します。 - Docker Desktop なしの Docker。
wsl --installで WSL2 を有効にし、その後 WSL ディストロ内でsudo apt install docker.ioを実行すると、デーモンを直接利用できます。公開されたイメージを変更せずに pull して実行できることを確認済みです。
ホスト側のベストプラクティス: 一般的な Docker + WSL2 のガイダンスであり、zeroclaw 固有のランタイムに関する主張ではありません。該当する場合は Microsoft Learn および Docker 独自のドキュメントから出典しています:
-
ボリュームマウント。 Windows 側のパス (
-v C:/Users/...:/zeroclaw-data) を Linux コンテナーにバインドマウントすると、WSL2 ⇄ Windows ファイルシステムの境界を越えます。Microsoft はレイアウトとクロス OS パスの影響について WSL ファイルシステム リファレンスで説明しています。Docker の名前付きボリューム (-v zeroclaw-data:/zeroclaw-data) を優先するか、ワークスペースを WSL ファイルシステム内 (\\wsl$\Debian\home\...) に保存して、ほぼネイティブなパフォーマンスを実現してください。 -
ネットワーキング。 デフォルトの WSL2 ネットワーキングは NAT されているため、コンテナ内のサービスは
-p転送後に Windows からlocalhost:<port>経由で到達可能です(Windows 11 + WSL2 で確認済み)。LAN 上の別のマシンからコンテナに到達する必要がある場合、またはコンテナ間 DNS が重要なマルチコンテナ構成を実行する場合は、Microsoft の Mirrored mode networking リファレンスに従いミラーモードに切り替え、%USERPROFILE%\.wslconfigに追加して:[wsl2] networkingMode=mirrored -
Docker 上のデーモンであり、Task Scheduler ではない。 コンテナ内には Windows Task Scheduler はありません。デーモンモードでの起動には、上記の例のように Docker の 再起動ポリシー、
--restart=unless-stoppedを使用してください。公開イメージは PID 1 / nonroot ユーザーとして実行されます。コンテナ が サービスです。その中でzeroclaw service installを実行しないでください。 -
ホスト Docker ソケット経由のスキルサンドボックス。 ZeroClaw のスキル実行サンドボックスは Docker をシェルアウトできます。ZeroClaw 自体をコンテナで実行しており、スキルサンドボックスでも Docker を使用したい場合は、ホストの Docker ソケットをマウントして、子コンテナが Docker-in-Docker のネストではなくホストデーモン上で実行されるようにしてください:
# PowerShell / cmd.exe: 先頭のスラッシュを1つ使用する。 # Git Bash / MINGW: MSYS のパス書き換えを回避するため //var/run/docker.sock を使用する。 -v /var/run/docker.sock:/var/run/docker.sockDocker ソケットをマウントすると、コンテナ内のあらゆるものにルート相当のホストアクセスが付与されることに注意してください。Docker の Docker デーモンソケットの保護 ページでこのトレードオフについて説明されています。Docker Desktop for Windows では、ホストソケットは
\\.\pipe\docker_engineです。上記のバインドマウント構文は正しく変換されます。このパターンは一般的なものであり、このドキュメントでは zeroclaw のスキルサンドボックスに対して特にベンチマークされていません。 -
リソース制限。 Windows 上の Docker Desktop は
%USERPROFILE%\.wslconfig経由で RAM/CPU を割り当てます。デフォルトはホスト RAM の半分です。設定の全体像は Microsoft の Advanced settings configuration in WSL リファレンスに記載されています。シングルユーザーの ZeroClaw デプロイメント向けの妥当な開始時リソース枠は次のとおりです:[wsl2] memory=8GB processors=4同じ WSL ディストロ内で重いスキル ワークロードやローカル LLM 推論を実行している場合は増やしてください。これはサイジングのガイダンスであり、イメージの必須要件ではありません。
システム依存関係
WindowsのビルドはMSVCツールチェーンを使用します。ソースからビルドするには次のものが必要です:
- 「C++ によるデスクトップ開発」ワークロードを備えた Visual Studio Build Tools(またはフルバージョンの Visual Studio)
- Rust stable(
rustup経由)
Option 1 を使用している場合、Rust ツールチェーンは不要です。バイナリは自己完結型です。Option 2 (setup.bat --prebuilt) は同じバイナリパスを使用することを意図していますが、現在のスクリプトは prebuilt ブランチに到達する前に cargo をチェックします。上記の既知の問題を参照してください。
サービスとして実行
Windows では、ZeroClaw は ZeroClaw Daemon という名前の ユーザースコープのスケジュールされたタスク としてインストールされます。現在のリリースには Windows Service / LocalSystem オプションはなく、基盤となるコードパスは zeroclaw service install が昇格シェルから実行されたか非昇格シェルから実行されたかに関係なく、常にスケジュールされたタスクをインストールします。
zeroclaw service install
zeroclaw service start
これにより、ログイン時に開始する、ユーザーアカウント配下のタスクがタスクスケジューラ(taskschd.msc)に作成されます。以下の方法で管理できます。
zeroclaw service status
zeroclaw service restart
zeroclaw service stop
zeroclaw service logs
--service-initについて。 CLI はクロスプラットフォームの一貫性のために--service-init [auto|systemd|openrc]フラグを公開していますが、Windows では no-op であり、常にスケジュール タスクのパスが使用されます。
ログは %USERPROFILE%\.zeroclaw\logs\ に出力されます(具体的には、<config_dir> のデフォルトが %USERPROFILE%\.zeroclaw\ である <config_dir>/logs/)。ただし、スケジュール タスクのラッパー自体は、設定ファイルの隣の %USERPROFILE%\.zeroclaw\zeroclaw-daemon.cmd に配置されます。logs\ 以下に書き込まれるのはデーモンの出力ファイル(daemon.stdout.log / daemon.stderr.log)のみです。
サーバー / マルチユーザーインストール。 ネイティブの Windows Service / LocalSystem サポートはロードマップにありますが、まだ実装されていません。当面は、サーバー上で、エージェントを実行するアカウントで ZeroClaw をインストールしてください。スケジュールタスクの方式では、そのユーザーのログイン時に起動されます。どのユーザーもログインする前に起動する必要がある場合は、タスク スケジューラ → ZeroClaw Daemon → プロパティ → 全般 → 「ユーザーがログオンしているかどうかにかかわらず実行する」 を使用してください。
更新
手動(オプション1パス)
新しい $ver で Option 1 の PowerShell インストールブロックを再実行してください。新しい zip が既存の zeroclaw.exe をその場で上書きします。その後:
zeroclaw service restart
setup.bat
最新のリリースを再ダウンロードし、setup.bat --prebuilt(または最初に使用したフラグ)を再実行してください。その後:
zeroclaw service restart
Scoop
scoop update zeroclaw
zeroclaw service restart
ソースから
cd C:\path\to\zeroclaw
git pull
cargo install --locked --path . --force
zeroclaw service restart
アンインストール
スケジュールされたタスクを停止して削除します:
zeroclaw service stop
zeroclaw service uninstall
バイナリを削除する:
:: オプション 1 (手動プリビルド) または setup.bat
rmdir /s /q %USERPROFILE%\.zeroclaw\bin
:: Option 3 (cargo install)
del "%USERPROFILE%\.cargo\bin\zeroclaw.exe"
:: Option 4 (Scoop)
scoop uninstall zeroclaw
設定、ワークスペース、ログを削除します(任意。会話履歴が削除されます):
rmdir /s /q "%USERPROFILE%\.zeroclaw"
このドキュメントの以前のバージョンでは
%LOCALAPPDATA%\ZeroClaw\が参照されていましたが、そのパスは現在のリリースでは使用されません。使用されるのは%USERPROFILE%\.zeroclaw\のみです。
注意点
-
長いパス。 一部の Windows ファイルシステムでは、パスの長さがまだ 260 文字に制限されています。ソースビルド中に
path too longエラーが発生した場合は、長いパスのサポートを有効にしてください:reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f -
SmartScreen. 署名されていないバイナリは、Explorer からの初回起動時(ダブルクリック)に SmartScreen をトリガーする場合があります。右クリック → プロパティ → 「ブロックの解除」が、署名付き MSI を追加するまでの標準的な回避策です。PowerShell または
cmd.exeからの起動では、通常 SmartScreen はトリガーされません。 -
タスク スケジューラのアイドル時停止 / バッテリ。 既定では、Windows はアイドル時またはバッテリ使用時にスケジュールされたタスクを終了する場合があります。インストールされた
ZeroClaw Daemonタスクではこれらの条件が無効化されていますが、古いリリース経由でインストールした場合は、タスク スケジューラ → ZeroClaw Daemon → プロパティ → 条件 で確認できます:- 「コンピューターが AC 電源に接続されている場合のみタスクを開始する」: チェックなし
- 「コンピューターがバッテリー電源に切り替わった場合に停止する」: 未チェック
- 「コンピューターが…の間アイドル状態である場合のみタスクを開始する」: 未チェック
-
OpenSSH パスワード認証。 SSH 経由で Windows を操作していて公開鍵が受け付けられない場合、キーを
C:\Users\<user>\.ssh\authorized_keys(一般ユーザー)またはC:\ProgramData\ssh\administrators_authorized_keys(Administratorsのメンバーとしてログインしている場合)に配置します。