# Install script for Zilliz CLI (zilliz / zz) on Windows
# Usage:
# irm https://github.com/zilliztech/zilliz-cli/releases/latest/download/install.ps1 | iex
#
# Environment variables:
# $env:VERSION - specific version to install (e.g., "1.0.0"). Default: latest.
# $env:INSTALL_DIR - install directory. Default: $HOME\.zilliz\bin
$ErrorActionPreference = "Stop"
$Repo = "zilliztech/zilliz-cli"
$Target = "x86_64-pc-windows-msvc"
# --- Version resolution ---
function Resolve-Version {
if ($env:VERSION) {
return $env:VERSION
}
$releases = Invoke-RestMethod -Uri "https://api.github.com/repos/$Repo/releases" -Headers @{ "User-Agent" = "zilliz-installer" }
$tag = ($releases | Where-Object { $_.tag_name -match "^zilliz-v" } | Select-Object -First 1).tag_name
if (-not $tag) {
Write-Error "Could not determine latest version from GitHub releases."
exit 1
}
return $tag -replace "^zilliz-v", ""
}
# --- Download and install ---
$Version = Resolve-Version
$InstallDir = if ($env:INSTALL_DIR) { $env:INSTALL_DIR } else { Join-Path $HOME ".zilliz\bin" }
$Archive = "zilliz-${Version}-${Target}.zip"
$Url = "https://github.com/$Repo/releases/download/zilliz-v${Version}/$Archive"
Write-Host "Installing Zilliz CLI v${Version} for ${Target}..."
Write-Host "Downloading ${Url}"
$TmpDir = Join-Path ([System.IO.Path]::GetTempPath()) "zilliz-install-$([guid]::NewGuid())"
New-Item -ItemType Directory -Path $TmpDir | Out-Null
try {
Invoke-WebRequest -Uri $Url -OutFile (Join-Path $TmpDir $Archive) -UseBasicParsing
} catch {
Write-Error "Download failed. Check that version '${Version}' exists and your platform is supported.`nURL: ${Url}"
exit 1
}
Expand-Archive -Path (Join-Path $TmpDir $Archive) -DestinationPath $TmpDir -Force
New-Item -ItemType Directory -Path $InstallDir -Force | Out-Null
Copy-Item (Join-Path $TmpDir "zilliz.exe") (Join-Path $InstallDir "zilliz.exe") -Force
Copy-Item (Join-Path $TmpDir "zz.exe") (Join-Path $InstallDir "zz.exe") -Force
Remove-Item -Recurse -Force $TmpDir
Write-Host ""
Write-Host "Zilliz CLI v${Version} installed successfully!"
Write-Host ""
Write-Host " Location: $(Join-Path $InstallDir 'zilliz.exe')"
Write-Host " Alias: $(Join-Path $InstallDir 'zz.exe')"
# Check if install dir is in PATH
$CurrentPath = [Environment]::GetEnvironmentVariable("Path", "User")
if ($CurrentPath -notlike "*$InstallDir*") {
Write-Host ""
Write-Host "Add the install directory to your PATH (run once):"
Write-Host ""
Write-Host " [Environment]::SetEnvironmentVariable('Path', `"$InstallDir;`$env:Path`", 'User')"
Write-Host ""
Write-Host "Then restart your terminal."
}
Write-Host ""
Write-Host "Verify installation:"
Write-Host ""
Write-Host " zilliz --version"