Your Zilliz Cloud console in the terminal. This skill enables you to operate the zilliz-cli, bringing the full power of Zilliz Cloud — cluster management, collection operations, vector search, RBAC, backups, and more — through natural language.
Use this skill when the user wants to:
AreaWhat You Can DoClustersCreate, delete, suspend, resume, modifyCollectionsCreate with custom schema, load, release, rename, dropVectorsSearch, query, insert, upsert, deleteIndexesCreate, list, describe, dropDatabasesCreate, list, describe, dropUsers & RolesRBAC setup, privilege managementBackupsCreate, restore, export, policy managementImportBulk data import from cloud storagePartitionsCreate, load, release, manageMonitoringCluster status, collection statsBillingUsage, invoices, payment methodsProjectsProject and region management
Before running any zilliz-cli command, verify the following in order:
python3 -m pip install --upgrade zilliz-cli to ensure the latest version is installed.zilliz auth status. If not logged in, guide through login (see below).zilliz context current. If no context, guide through context setup.bash
python3 -m pip install --upgrade zilliz-cli
Verify installation:
bash
zilliz --version
IMPORTANT: Login commands ( zilliz login, zilliz configure) require an interactive terminal and CANNOT run inside the AI agent. Always instruct the user to run these in their own terminal.
Check if already logged in:
bash
zilliz auth status
If not logged in, tell the user to open their own terminal and run one of the following:
Option 1: Browser-based login (OAuth) — full feature access
text
zilliz login
--no-browser in headless environments (displays a URL to visit manually)Option 2a: API Key via login command
text
zilliz login --api-key
Option 2b: API Key via configure (legacy)
text
zilliz configure
Option 3: Environment variable
User can add to their shell profile ( .zshrc / .bashrc):
text
export ZILLIZ_API_KEY=<your-api-key>
After the user completes authentication, verify by running:
bash
zilliz auth status
bash
zilliz configure # Interactive API key setup
zilliz configure list # Show all config values
zilliz configure set <key> <value> # Set a config value
zilliz configure get <key> # Get a config value
zilliz configure clear # Clear all credentials
These commands require an interactive terminal. Instruct the user to run in their own terminal:
text
# Interactive selection
zilliz auth switch
# Direct switch by org ID
zilliz auth switch <org-id>
bash
zilliz logout
Data-plane commands (collection, vector, index, etc.) require an active cluster context.
bash
# Set by cluster ID (endpoint auto-resolved)
zilliz context set --cluster-id <cluster-id>
# Set with explicit endpoint
zilliz context set --cluster-id <cluster-id> --endpoint <url>
# Change database (default: "default")
zilliz context set --database <db-name>
bash
zilliz context current
All zilliz-cli commands support --output json for structured, machine-readable output:
bash
zilliz cluster list --output json
zilliz collection describe --name <name> --output json
Available formats: json, table, text. Default is text.
FeatureFreeServerlessDedicatedCollection CRUDYesYesYesVector search/queryYesYesYesDatabase create/dropNoNoYesUser/role managementNoLimitedYesBackup managementNoYesYesCluster modifyNoNoYes
Guide the user through the complete Zilliz Cloud CLI setup:
python3 --version (need 3.10+)python3 -m pip install --upgrade zilliz-cli then zilliz --versionzilliz auth status; if not logged in, instruct user to run zilliz login in their own terminalzilliz cluster list; if none, offer to create onezilliz context set --cluster-id <id>zilliz context current and zilliz collection listbash
zilliz cluster list
zilliz cluster list --page-size 10 --page 1
zilliz cluster list --all
bash
zilliz cluster describe --cluster-id <cluster-id>
bash
# Serverless (default)
zilliz cluster create --type serverless --name <name> --project-id <project-id> --region <region-id>
# Free tier
zilliz cluster create --type free --name <name> --project-id <project-id> --region <region-id>
# Dedicated
zilliz cluster create --type dedicated \
--name <name> \
--project-id <project-id> \
--region <region-id> \
--cu-type <cu-type> \
--cu-size <cu-size>
To find available project IDs, cloud providers, and regions:
bash
zilliz project list
zilliz cluster providers
zilliz cluster regions
zilliz cluster regions --cloud-id <cloud-id>
bash
zilliz cluster delete --cluster-id <cluster-id>
zilliz cluster suspend --cluster-id <cluster-id>
zilliz cluster resume --cluster-id <cluster-id>
bash
zilliz cluster modify --cluster-id <cluster-id> --cu-size <new-size>
zilliz cluster modify --cluster-id <cluster-id> --replica <count>
zilliz cluster modify --cluster-id <cluster-id> --body '{"cuSize": 2, "replica": 2}'
zilliz cluster providers and zilliz cluster regions.cluster create, poll with zilliz cluster describe until status becomes RUNNING.zilliz context set --cluster-id <id>.All collection commands accept an optional --database <db-name> flag.
bash
zilliz collection list
zilliz collection list --database <db-name>
zilliz collection describe --name <collection-name>
Quick create with auto schema:
bash
zilliz collection create --name <name> --dimension <dim>
# Optional: --metric-type COSINE|L2|IP --id-type Int64|VarChar --auto-id true|false
Advanced create with custom schema:
bash
zilliz collection create --name <name> --body '{
"schema": {
"fields": [
{"fieldName": "id", "dataType": "Int64", "isPrimary": true},
{"fieldName": "vector", "dataType": "FloatVector", "elementTypeParams": {"dim": "768"}},
{"fieldName": "text", "dataType": "VarChar", "elementTypeParams": {"max_length": "1024"}}
]
}
}'
bash
zilliz collection drop --name <collection-name>
zilliz collection rename --name <old-name> --new-name <new-name>
zilliz collection rename --name <old-name> --new-name <new-name> --new-database <db-name>
zilliz collection has --name <collection-name>
bash
zilliz collection load --name <collection-name>
zilliz collection release --name <collection-name>
zilliz collection get-stats --name <collection-name>
zilliz collection get-load-state --name <collection-name>
zilliz collection flush --name <collection-name>
zilliz collection compact --name <collection-name>
bash
zilliz alias create --collection <collection-name> --alias <alias-name>
zilliz alias list --database <db-name>
zilliz alias list --database <db-name> --collection <collection-name>
zilliz alias describe --alias <alias-name>
zilliz alias alter --collection <new-collection-name> --alias <alias-name>
zilliz alias drop --alias <alias-name>
describe to inspect schema before vector operations.All vector commands accept an optional --database <db-name> flag. Target collection must exist and be loaded.
bash
zilliz vector search \
--collection <collection-name> \
--data '[[0.1, 0.2, 0.3, ...]]' \
--limit 10
# Optional:
# --filter 'age > 20 and status == "active"'
# --output-fields '["field1", "field2"]'
# --anns-field <vector-field-name>
bash
zilliz vector hybrid-search \
--collection <collection-name> \
--search '[
{"data": [[0.1, 0.2, ...]], "annsField": "dense_vector", "limit": 10},
{"data": [["search text"]], "annsField": "sparse_vector", "limit": 10}
]' \
--rerank '{"strategy": "rrf", "params": {"k": 60}}' \
--limit 10
# Optional: --output-fields '["field1", "field2"]'
bash
zilliz vector query \
--collection <collection-name> \
--filter 'id in [1, 2, 3]' \
--limit 10
# Optional: --output-fields '["field1", "field2"]'
bash
zilliz vector get \
--collection <collection-name> \
--id '[1, 2, 3]'
# Optional: --output-fields '["field1", "field2"]'
bash
zilliz vector insert \
--collection <collection-name> \
--data '[
{"id": 1, "vector": [0.1, 0.2, ...], "text": "hello"},
{"id": 2, "vector": [0.3, 0.4, ...], "text": "world"}
]'
zilliz vector upsert \
--collection <collection-name> \
--data '[{"id": 1, "vector": [0.1, ...], "text": "updated"}]'
# Optional: --partition <partition-name>
For large datasets, read from file:
bash
zilliz vector insert --collection <name> --data "$(cat data.json)"
bash
zilliz vector delete \
--collection <collection-name> \
--filter 'id in [1, 2, 3]'
# Optional: --partition <partition-name>
ExpressionExampleComparisonage > 20Equalitystatus == "active"IN listid in [1, 2, 3]AND/ORage > 20 and status == "active"String matchtext like "hello%"Array containstags array_contains "ml"
zilliz collection describe for field names and dimensions.--data value must match the collection's vector dimension exactly.All index commands accept an optional --database <db-name> flag.
bash
zilliz index create --collection <collection-name> --body '{
"indexParams": [
{
"fieldName": "vector",
"indexName": "vector_index",
"metricType": "COSINE",
"indexType": "AUTOINDEX"
}
]
}'
Common index types: AUTOINDEX (recommended), IVF_FLAT, IVF_SQ8, HNSW.
Common metric types: COSINE, L2, IP.
bash
zilliz index list --collection <collection-name>
zilliz index describe --collection <collection-name> --index-name <index-name>
zilliz index drop --collection <collection-name> --index-name <index-name>
AUTOINDEX is recommended for most use cases.bash
zilliz database list
zilliz database create --name <db-name>
zilliz database create --name <db-name> --body '{"properties": {}}'
zilliz database describe --name <db-name>
zilliz database drop --name <db-name>
database list works on all cluster types.zilliz context set --database <db-name>.bash
zilliz partition list --collection <collection-name>
zilliz partition create --collection <collection-name> --partition <partition-name>
zilliz partition has --collection <collection-name> --partition <partition-name>
zilliz partition get-stats --collection <collection-name> --partition <partition-name>
zilliz partition load --collection <collection-name> --names '["partition1", "partition2"]'
zilliz partition release --collection <collection-name> --names '["partition1", "partition2"]'
zilliz partition drop --collection <collection-name> --partition <partition-name>
_default partition.Only available on Dedicated clusters.
bash
zilliz user list
zilliz user create --user <username> --password <password>
zilliz user describe --user <username>
zilliz user update-password --user <username> --password <old-password> --new-password <new-password>
zilliz user grant-role --user <username> --role <role-name>
zilliz user revoke-role --user <username> --role <role-name>
zilliz user drop --user <username>
bash
zilliz role list
zilliz role create --role <role-name>
zilliz role describe --role <role-name>
zilliz role grant-privilege \
--role <role-name> \
--object-type <Collection|Global|Database> \
--object-name <name-or-*> \
--privilege <privilege-name>
zilliz role revoke-privilege \
--role <role-name> \
--object-type <Collection|Global|Database> \
--object-name <name-or-*> \
--privilege <privilege-name>
zilliz role drop --role <role-name>
Common privileges:
Search, Query, Insert, Delete, CreateIndex, DropCollectionCreateCollection, AllListCollectionsadmin (full access), public (no privileges by default).* as object-name to grant privilege on all objects of that type.No cluster context required — backup operations use --cluster-id directly.
bash
# Full cluster backup
zilliz backup create --cluster-id in01-xxxxxxxxxxxx
# Collection-level backup
zilliz backup create --cluster-id in01-xxxxxxxxxxxx --database default --collection my_col
bash
zilliz backup list
zilliz backup list --cluster-id <cluster-id>
zilliz backup list --creation-method manual # or: auto
zilliz backup list --backup-type CLUSTER # or: COLLECTION
zilliz backup describe --cluster-id <cluster-id> --backup-id <backup-id>
zilliz backup delete --cluster-id <cluster-id> --backup-id <backup-id>
bash
zilliz backup export \
--cluster-id <cluster-id> \
--backup-id <backup-id> \
--integration-id <integration-id> \
--directory <path>
bash
zilliz backup restore-cluster \
--cluster-id <source-cluster-id> \
--backup-id <backup-id> \
--project-id <project-id> \
--name <new-cluster-name> \
--cu-size <size> \
--collection-status LOADED
bash
zilliz backup restore-collection \
--cluster-id <source-cluster-id> \
--backup-id <backup-id> \
--dest-cluster-id <destination-cluster-id> \
--body '{"collections": [{"source": "col1", "target": "col1_restored"}]}'
bash
zilliz backup describe-policy --cluster-id <cluster-id>
# Enable daily backup
zilliz backup update-policy --cluster-id in01-xxxx --auto-backup true --frequency daily --start-time 02:00 --retention-days 7
# Enable backup on Mon/Wed/Fri
zilliz backup update-policy --cluster-id in01-xxxx --auto-backup true --frequency 1,3,5 --start-time 03:00-05:00 --retention-days 14
# Disable auto-backup
zilliz backup update-policy --cluster-id in01-xxxx --auto-backup false
Target collection must exist on the target cluster.
bash
# Start import job
zilliz import start \
--cluster-id <cluster-id> \
--collection <collection-name> \
--body '{
"files": [["s3://bucket/path/to/file.parquet"]],
"options": {}
}'
# List import jobs
zilliz import list --cluster-id <cluster-id>
zilliz import list --cluster-id <cluster-id> --database <db-name>
# Check import status
zilliz import status --cluster-id <cluster-id> --job-id <job-id>
Supported file formats: Parquet, JSON, CSV.
import status to track progress.Requires OAuth login (not API Key mode).
bash
# Usage
zilliz billing usage --last 7d
zilliz billing usage --month this
zilliz billing usage --month last
zilliz billing usage --month 2026-01
zilliz billing usage --start 2026-01-01 --end 2026-01-31
# Invoices
zilliz billing invoices
zilliz billing invoices --all
zilliz billing invoices --invoice-id inv-xxxxxxxxxxxx
# Bind credit card (instruct user to run in their own terminal)
zilliz billing bind-card --card-number <number> --exp-month <1-12> --exp-year <year> --cvc <code>
bind-card command handles sensitive card data — always instruct the user to run it in their own terminal.bash
zilliz project list
zilliz project describe --project-id <project-id>
zilliz project create --name <project-name> --plan <Free|Serverless|Standard|Enterprise>
zilliz project upgrade --project-id <project-id> --plan <Serverless|Standard|Enterprise>
bash
zilliz volume create --project-id <project-id> --region <region-id> --name <volume-name>
zilliz volume list --project-id <project-id>
zilliz volume delete --name <volume-name>
When the user asks for status, gather and present:
zilliz context current --output jsonzilliz cluster describe --cluster-id <id> --output jsonzilliz database list --output jsonzilliz collection list --output jsonzilliz collection get-stats --name <name> --output json and zilliz collection get-load-state --name <name> --output jsonPresent as:
Cluster: () Status: RUNNING | Region: | Plan: Database:
Collections:
CollectionRowsLoad Statemy_collection10,000Loaded
zilliz login, zilliz configure, or zilliz auth switch inside the AI agent — they require interactive input.--output json when parsing results programmatically, then format into readable summaries.