zilliz
A unified CLI and TUI (Terminal User Interface) for managing Zilliz Cloud clusters and Milvus vector database operations, written in Rust.
Features
- Dual interface -- interactive TUI mode and traditional CLI commands
- Model-driven -- operations defined in JSON, supporting dynamic command generation
- Multi-resource management -- clusters, collections, vectors, indexes, backups, billing, and more
- Rich output -- table, JSON, YAML, CSV, and text formats with JMESPath filtering
- Async job polling --
--waitflag for long-running operations - Metrics -- query cluster and collection metrics; default output is an inline Braille line chart per metric with
min / max / avg / lastsummary (pass-o tablefor the pivot-table layout,-o json/--queryfor raw data)
Quick Start
Install
This installs two binaries: zilliz (primary) and zz (shorthand alias). Both are identical.
Uninstall
If you installed via cargo install zilliz, also run cargo uninstall zilliz
afterwards to clear Cargo's registry record.
Updating
Once installed, update in place by re-running the installer:
update is an accepted alias (zilliz update).
Guided onboarding
If this is your first time, run:
It walks you through sign-in, picks an organization and cluster, lets you
run a few common commands interactively, and prints a copy-pasteable
cheatsheet of next-step commands. Use zilliz quickstart --non-interactive
(or pipe the output) to print the cheatsheet only — handy in scripts or CI.
Authenticate
# Browser-based OAuth (recommended)
# Login with an API key (prompted if no value is given)
# Log in to the CN cloud (api.cloud.zilliz.com.cn) — API key only
# Or configure credentials interactively
Set Cluster Context
A cluster context is required for data-plane operations (collections, vectors, etc.).
# Interactive selection
# Or specify directly
# Check current context
Launch TUI
Running zilliz without arguments starts the interactive terminal UI.
Use CLI
# List clusters
# Describe a collection (using shorthand alias)
# JSON output with JMESPath filtering
# Suppress table headers
# Wait for an async operation to complete
CLI Commands
Built-in Commands
| Command | Description |
|---|---|
login |
Log in to Zilliz Cloud (OAuth, --api-key, or --cn for CN cloud) |
logout |
Log out and clear stored credentials |
configure |
Manage configuration (set, get, list, clear) |
context |
Manage cluster context (set, current, clear) |
auth status |
Show current authentication status |
auth switch |
Switch to a different organization |
completion |
Shell completions (install, uninstall, status, show) |
version |
Display version info |
Control-Plane Commands (Cloud Management)
| Resource | Operations |
|---|---|
cluster |
list, describe, modify, suspend, resume, delete, create, providers, regions, metrics |
project |
create, list, describe, upgrade |
backup |
create, list, describe, delete, export, restore-cluster, restore-collection, describe-policy, update-policy |
import |
start, list, status |
volume |
create, list, delete |
job |
describe |
billing |
usage, invoices |
Data-Plane Commands (Milvus Operations)
These commands require a cluster context (zilliz context set).
| Resource | Operations |
|---|---|
collection |
create, list, describe, drop, rename, load, release, get-load-state, get-stats, has, flush, compact, metrics |
vector |
insert, upsert, search, hybrid-search, query, get, delete |
database |
create*, list, describe*, drop* |
index |
create, list, describe, drop |
partition |
create, list, drop, has, get-stats, load, release |
user |
create*, list*, describe*, drop*, update-password*, grant-role*, revoke-role* |
role |
create*, list*, describe*, drop*, grant-privilege*, revoke-privilege* |
alias |
create, list, describe, alter, drop |
external-collection refresh |
trigger, describe, list |
* Dedicated clusters only.
Local Milvus Standalone
Manage a local Milvus standalone Docker deployment via the official
standalone_embed.sh
script. Requires bash and a working Docker daemon (macOS / Linux / WSL).
| Action | Description |
|---|---|
zilliz milvus standalone install |
Download standalone_embed.sh into ./milvus-standalone (or --dir <path>). |
zilliz milvus standalone start |
Run bash standalone_embed.sh start. |
zilliz milvus standalone stop |
Run bash standalone_embed.sh stop. |
zilliz milvus standalone restart |
Stop and start the container. |
zilliz milvus standalone delete |
Remove container, volumes/, and config files (destructive — prompts for confirmation, or pass --yes). |
zilliz milvus standalone upgrade |
Replace standalone_embed.sh with the latest from upstream master and restart (destructive — prompts, or pass --yes). Alias: update. |
Common flags: --dir <path>, --dry-run, -y / --yes, -h / --help. Install
also accepts --script-url <https://...>, --start, and --force.
# Preview without touching the filesystem or Docker
# Install and start in one go
# Manage the running deployment
Default endpoints after start: Milvus localhost:19530, WebUI
http://localhost:9091, embedded etcd localhost:2379. Data is persisted
under <install-dir>/volumes/milvus.
Global Flags
| Flag | Description |
|---|---|
--api-key <KEY> |
Override API key (or set ZILLIZ_API_KEY env var) |
-o, --output <FMT> |
Output format: table (default), json, yaml, csv, text |
-a, --all |
Fetch all pages for paginated responses |
--query <JMESPATH> |
Filter output with a JMESPath expression |
--no-header |
Suppress table/CSV header row |
--wait |
Wait for async jobs to reach a terminal state |
TUI Keyboard Shortcuts
| Key | Action |
|---|---|
q / Esc |
Quit |
Ctrl+C |
Force quit |
Configuration
Config files are stored in ~/.zilliz/ (compatible with zilliz-cli):
| File | Content |
|---|---|
credentials |
API keys, user info, org data (INI format) |
config |
Cluster context and database preferences (INI format) |
Environment Variables
| Variable | Description |
|---|---|
ZILLIZ_CONFIG_DIR |
Override config directory (default: ~/.zilliz/) |
ZILLIZ_API_KEY |
Set API key (overrides config file) |
RUST_LOG |
Enable debug logging (e.g., RUST_LOG=zilliz=debug) |