zilliz 1.4.2

TUI and CLI tool for managing Zilliz Cloud clusters and Milvus operations
Documentation
# 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"