結論
Multicaの公式Windowsインストーラーは、CLIをユーザープロファイル配下へ配置し、ユーザーPATHへ追加します。
一方、次のような要件では、Gitリポジトリ内へバージョン固定で配置する方法が扱いやすいです。
- ツールの実体を特定のリポジトリ内に閉じたい
- ユーザーPATHを変更したくない
- 複数プロジェクトで異なるCLIバージョンを使い分けたい
- インストール元とチェックサムを記録したい
この記事では、Windows x64環境へMultica CLI 0.4.7を配置し、公式のchecksums.txtでSHA-256を検証したうえで、リポジトリ内のラッパーから起動します。
認証やdaemon起動は扱いません。CLIの安全な配置と起動確認だけを対象にします。
環境
- Windows 11 x64
- PowerShell
- Multica CLI 0.4.7
- 配置先:
<YOUR_REPOSITORY>\.tools\multica\v0.4.7\
Multicaは、Claude CodeやCodexなどのAI coding toolをローカルdaemonから実行できる管理基盤です。公式ガイドでは、Windows向けにPowerShellインストーラーが案内されています。
なぜ公式のワンライナーをそのまま使わないのか
公式のWindows向け手順は次のとおりです。
irm https://raw.githubusercontent.com/multica-ai/multica/main/scripts/install.ps1 | iex
公式インストーラーは、バイナリを%USERPROFILE%\.multica\bin\へ配置し、そのディレクトリをユーザーPATHへ追加します。
通常の端末全体へのインストールなら便利ですが、今回は「特定のリポジトリ内だけに置く」という要件に合いません。そのため、公式GitHub Releasesから配布物とチェックサムを取得して手動配置します。
1. バージョンと配置先を固定する
最初に、対象バージョンと保存先を明示します。
$version = '0.4.7'
$tag = "v$version"
$repoRoot = 'C:\path\to\<YOUR_REPOSITORY>'
$installDir = Join-Path $repoRoot ".tools\multica\$tag"
$downloadDir = Join-Path $repoRoot ".tools\multica\.download-$tag"
New-Item -ItemType Directory -Path $installDir -Force | Out-Null
New-Item -ItemType Directory -Path $downloadDir -Force | Out-Null
バージョンをlatest任せにせず固定すると、更新による挙動差を切り分けやすくなります。
2. 公式リリースとchecksums.txtを取得する
Windows x64向けのアセット名は、バージョン0.4.7ではmultica-cli-0.4.7-windows-amd64.zipです。
$asset = "multica-cli-$version-windows-amd64.zip"
$releaseBase = "https://github.com/multica-ai/multica/releases/download/$tag"
$zipPath = Join-Path $downloadDir $asset
$checksumsPath = Join-Path $downloadDir 'checksums.txt'
Invoke-WebRequest `
-Uri "$releaseBase/$asset" `
-OutFile $zipPath `
-UseBasicParsing
Invoke-WebRequest `
-Uri "$releaseBase/checksums.txt" `
-OutFile $checksumsPath `
-UseBasicParsing
3. SHA-256を照合する
ダウンロードできただけで展開せず、checksums.txtに記載された値と実ファイルのSHA-256を比較します。
$checksumLine = Get-Content -LiteralPath $checksumsPath |
Where-Object { $_ -match [regex]::Escape($asset) } |
Select-Object -First 1
if (-not $checksumLine) {
throw "Checksum entry not found: $asset"
}
$expectedHash = ($checksumLine -split '\s+')[0].ToLowerInvariant()
$actualHash = (Get-FileHash -LiteralPath $zipPath -Algorithm SHA256).Hash.ToLowerInvariant()
if ($actualHash -ne $expectedHash) {
throw "SHA-256 mismatch: expected=$expectedHash actual=$actualHash"
}
Write-Host "SHA-256 verified: $actualHash"
今回取得したZIPでは、次の値で一致しました。
c9940164a257e6f8ab5db9021357c8d413b2d38a45e36a4e908fbabbb0419c77
この値は0.4.7のWindows amd64向けアセットに対するものです。別バージョンでは、必ずそのリリースのchecksums.txtを参照してください。
4. リポジトリ内へ展開する
Expand-Archive `
-LiteralPath $zipPath `
-DestinationPath $installDir `
-Force
$multicaExe = Join-Path $installDir 'multica.exe'
if (-not (Test-Path -LiteralPath $multicaExe)) {
throw "multica.exe was not found: $multicaExe"
}
配置後の構造は次のようになります。
<YOUR_REPOSITORY>/
├─ .tools/
│ └─ multica/
│ └─ v0.4.7/
│ ├─ multica.exe
│ ├─ LICENSE
│ └─ README.md
└─ scripts/
└─ multica.cmd
取得用ZIPが不要なら、チェックサム検証と展開の完了後に.download-v0.4.7を削除できます。
5. PATHを変更せずに呼び出すラッパーを作る
scripts\multica.cmdを作成します。
@echo off
"%~dp0..\.tools\multica\v0.4.7\multica.exe" %*
%~dp0は、この.cmdファイル自身が置かれているディレクトリを表します。カレントディレクトリではなくラッパーの位置を基準にするため、リポジトリの絶対パスを埋め込む必要がありません。
リポジトリルートから次のように実行できます。
.\scripts\multica.cmd version
.\scripts\multica.cmd --help
6. 起動を検証する
versionの実行結果は次のとおりでした。
multica 0.4.7 (commit: b1d5fa4ff, built: 2026-07-21T10:06:49Z)
go: go1.26.1, os/arch: windows/amd64
さらに--helpがexit code 0となり、agent、issue、workspace、daemonなどのコマンド一覧が表示されることを確認しました。
PowerShellの.ps1ラッパーが動かない場合
当初はPowerShellラッパーを作りましたが、環境のExecution Policyにより次のエラーになりました。
running scripts is disabled on this system
Execution Policyを変更する方法もありますが、CLIを呼び出すだけなら.cmdラッパーで十分です。端末全体のポリシーを変えずに済むため、今回は.cmdへ切り替えました。
誤ってユーザー領域へ入れた場合の戻し方
公式インストーラー等ですでにユーザー領域へ導入しており、リポジトリ内だけに戻したい場合は、まずリポジトリ内のCLIが正常に動くことを確認します。
.\scripts\multica.cmd version
その後、ユーザーPATHから%USERPROFILE%\.multica\binを外し、不要になったユーザー領域のバイナリを削除します。認証やdaemonをすでに利用している場合、.multica配下に設定やログが存在する可能性があるため、ディレクトリ全体を無条件に削除しないでください。
今回は認証・daemon起動前だったため、ユーザー領域にはbin\multica.exeしかないことを確認してから削除しました。
注意点
-
multica setupやmultica loginは、ブラウザ認証やユーザー領域への状態保存を伴います。 -
multica daemon startはバックグラウンドプロセスを起動します。 - 本記事の検証範囲は、CLIの取得、SHA-256照合、配置、
versionと--helpの起動確認までです。 - バイナリをGit管理するかどうかは、リポジトリのサイズ上限や配布方針に合わせて判断してください。
- バージョン更新時は、ラッパー内のバージョンとチェックサム記録も更新します。
参考資料
- Multica CLI — Installation Guide for AI Agents
- Multica CLI and Agent Daemon Guide
- Multica v0.4.7 Release
検証範囲
確認済み:
- Windows amd64向け公式ZIPの取得
- 公式
checksums.txtとのSHA-256一致 - リポジトリ内の
multica.exe起動 -
.cmdラッパー経由のversionと--help - ユーザーPATHを変更しない最終構成
未確認:
-
multica login後の認証 -
multica daemon start後のagent検出 - Multica Cloud上でのタスク実行