- Features
- Installation
- Quick Start
- Configuration
- Shell Autocompletion
- Commands
- Usage Examples
- Advanced Topics
- Troubleshooting
- Getting Help
- Contributing
- License
- Changelog
Official command-line interface for Arize AI - streamline your MLOps workflows with datasets, experiments, projects, and more.
- Dataset Management: Create, list, update, and delete datasets
- Project Management: Organize your ML projects
- Multiple Profiles: Switch between different Arize environments
- Flexible Output: Export to JSON, CSV, Parquet, or display as tables
- Shell Completion: Tab completion for bash, zsh, and fish
- Rich CLI Experience: Beautiful terminal output with progress indicators
pip install arize-ax-cligit clone https://github.com/Arize-ai/arize-ax-cli.git
cd ax-cli
pip install -e .ax --versionThe first time you use the CLI, you'll need to create a configuration profile:
ax config initThis interactive setup will:
- Detect existing
ARIZE_*environment variables and offer to use them - Guide you through credential setup if no environment variables are found
- Create a configuration profile (default or named)
- Save your preferences for output format, caching, and more
Example output:
_ _ _ __ __
/ \ _ __(_)_______ / \ \ \/ /
/ _ \ | '__| |_ / _ \ / _ \ \ /
/ ___ \| | | |/ / __/ / ___ \ / \
/_/ \_\_| |_/___\___| /_/ \_\_/\_\
AI Observability Platform
Welcome to Arize AX CLI!
No configuration found. Let's set it up!
Environment Variable Detection
✓ Detected ARIZE_API_KEY = ak_***************xyz
Create config from detected environment variables? [Y/n]: y
Configuration saved to profile 'default'
You're ready to go! Try: ax datasets list
Check your configuration:
ax config showList your datasets:
ax datasets listList your projects:
ax projects listThe Arize CLI uses a flexible configuration system that supports multiple profiles, environment variables, and two setup modes.
| Command | Description |
|---|---|
ax config init |
Create a new configuration profile interactively |
ax config list |
List all available profiles |
ax config show |
Display the current profile's configuration |
ax config use <profile> |
Switch to a different profile |
ax config delete <profile> |
Delete a configuration profile |
When you run ax config init, you'll be prompted to choose between two configuration modes:
Best for: Most users, cloud deployments, standard Arize usage
The simple setup only asks for the essentials:
- API Key: Your Arize API key
- Region: US, EU, or leave unset (auto-detect)
- Output Format: table, json, csv, or parquet
Example:
Choose configuration mode:
> Simple (recommended)
Advanced
API Key: Insert value
API Key (e.g., ak-123...): [hidden input]
Region:
> (leave empty for unset)
US
EU
Use environment variable
Default output format:
> table
json
csv
parquet
Generated configuration:
[profile]
name = "default"
[auth]
api_key = "ak_your_api_key_here"
[routing]
region = "US"
[output]
format = "table"Best for: On-premise deployments, Private Connect, custom routing, performance tuning
The advanced setup provides full control over:
- API Key: Your Arize credentials
- Routing: Choose from multiple strategies:
- No override (use defaults)
- Region-based routing (US, EU)
- Single endpoint (on-premise deployments)
- Base domain (Private Connect)
- Custom endpoints & ports (granular control)
- Transport: Performance tuning:
- Stream max workers
- Stream max queue bound
- PyArrow max chunksize
- Max HTTP payload size
- Security: TLS certificate verification
- Output Format: Default display format
Example routing options:
What type of override should we setup?
0 - No override (use defaults)
1 - Region (for region-based routing)
2 - Single endpoint (typical for on-prem deployments)
> 3 - Base Domain (for Private Connect)
4 - Custom endpoints & ports
Generated configuration (example with Private Connect):
[profile]
name = "production"
[auth]
api_key = "${ARIZE_API_KEY}"
[routing]
base_domain = "arize-private.yourcompany.com"
[transport]
stream_max_workers = 8
stream_max_queue_bound = 5000
pyarrow_max_chunksize = 10000
max_http_payload_size_mb = 8
[security]
request_verify = true
[storage]
directory = "~/.arize"
cache_enabled = true
[output]
format = "json"Configuration files are stored at:
- Linux/macOS:
~/.arize/config/<profile>.toml - Windows:
%USERPROFILE%\.arize\config\<profile>.toml
Authentication (required)
[auth]
api_key = "ak_your_api_key_here"
# Or use environment variable reference:
api_key = "${ARIZE_API_KEY}"Routing (choose one strategy)
[routing]
# Option 1: Region-based (recommended for cloud)
region = "US" # or "EU"
# Option 2: Single endpoint (on-premise)
single_host = "arize.yourcompany.com"
single_port = "443"
# Option 3: Base domain (Private Connect)
base_domain = "arize-private.yourcompany.com"
# Option 4: Custom endpoints (advanced)
api_host = "api.arize.com"
api_scheme = "https"
otlp_host = "otlp.arize.com"
otlp_scheme = "https"
flight_host = "flight.arize.com"
flight_port = "443"
flight_scheme = "grpc+tls"Transport (optional, advanced only)
[transport]
stream_max_workers = 8
stream_max_queue_bound = 5000
pyarrow_max_chunksize = 10000
max_http_payload_size_mb = 8Security (optional, advanced only)
[security]
request_verify = true # Set to false to disable SSL verification (not recommended)Storage (optional)
[storage]
directory = "~/.arize"
cache_enabled = trueOutput (optional)
[output]
format = "table" # Options: table, json, csv, parquetThe CLI can detect and use environment variables in two ways:
When you run ax config init, the CLI automatically detects existing ARIZE_* environment variables and offers to use them:
ax config initEnvironment Variable Detection
✓ Detected ARIZE_API_KEY = ak_***************xyz
✓ Detected ARIZE_REGION = US
Create config from detected environment variables? [Y/n]: y
This will create a configuration that references the environment variables:
[auth]
api_key = "${ARIZE_API_KEY}"
[routing]
region = "${ARIZE_REGION}"During both Simple and Advanced setup, you can choose "Use environment variable" for any field to reference an environment variable:
API Key:
Insert value
> Use environment variable
Environment variable name for API Key: ARIZE_API_KEY
To see the actual values (with environment variables expanded):
ax config show --expandWithout --expand, you'll see the variable references like ${ARIZE_API_KEY}.
Create different profiles for different environments:
# Create a production profile
ax config init
# Enter profile name: production
# Create a staging profile
ax config init
# Enter profile name: staging
# List all profiles
ax config list
# Switch profiles
ax config use production
ax config use staging
# Use a specific profile for a single command
ax datasets list --profile productionEnable tab completion for your shell to autocomplete commands, options, and arguments.
The CLI includes a built-in installer that automatically configures completion for your shell:
ax --install-completionThis will:
- Detect your current shell (bash, zsh, or fish)
- Install the appropriate completion script
- Show you instructions to activate it
After running the command, restart your shell or open a new terminal window for the changes to take effect.
Once installed, test tab completion:
ax <TAB> # Shows available commands (datasets, projects, config, cache)
ax datasets <TAB> # Shows dataset subcommands (list, get, create, delete)
ax datasets list --<TAB> # Shows available optionsIf you prefer to see or customize the completion script before installing:
# View the completion script for your shell
ax --show-completion
# Save it to a file and source it manually
ax --show-completion >> ~/.bashrc # For bash
ax --show-completion >> ~/.zshrc # For zsh- Bash (Linux, macOS, Windows Git Bash)
- Zsh (macOS default, Oh My Zsh)
- Fish (Linux, macOS)
- PowerShell (Windows)
Manage your ML datasets:
# List datasets
ax datasets list --space-id <space-id> [--limit 15] [--cursor <cursor>]
# Get a specific dataset
ax datasets get <dataset-id>
# Create a new dataset
ax datasets create --name "My Dataset" --space-id <space-id> --file data.csv
# List examples from a dataset
ax datasets list_examples <dataset-id> [--version-id <version-id>] [--limit 30]
# Delete a dataset
ax datasets delete <dataset-id> [--force]Supported data file formats:
- CSV (
.csv) - JSON (
.json) - JSON Lines (
.jsonl) - Parquet (
.parquet)
Organize your ML projects:
# List projects
ax projects list --space-id <space-id> [--limit 15] [--cursor <cursor>]
# Get a specific project
ax projects get <project-id>
# Create a new project
ax projects create --name "My Project" --space-id <space-id>
# Delete a project
ax projects delete <project-id> [--force]Manage the local cache:
# Clear the cache
ax cache clearAvailable for all commands:
--profile, -p <name>: Use a specific configuration profile--output, -o <format>: Set output format (table,json,csv,parquet, or a file path)--verbose, -v: Enable verbose logging--help, -h: Show help message
ax datasets create \
--name "Customer Churn Dataset" \
--space-id sp_abc123 \
--file ./data/churn.csvax datasets list --space-id sp_abc123 --output json > datasets.jsonax datasets list_examples ds_xyz789 --output examples.parquetax datasets list --space-id sp_abc123 --profile productionList more datasets using pagination:
# First page
ax datasets list --space-id sp_abc123 --limit 20
# Next page (use cursor from previous response)
ax datasets list --space-id sp_abc123 --limit 20 --cursor <cursor-value># Setup profiles for different environments
ax config init # Create "production" profile
ax config init # Create "staging" profile
# Switch contexts
ax config use production
ax datasets list --space-id sp_prod123
ax config use staging
ax datasets list --space-id sp_stage456The CLI supports multiple output formats:
- Table (default): Human-readable table format
- JSON: Machine-readable JSON
- CSV: Comma-separated values
- Parquet: Apache Parquet columnar format
Set default format in config:
ax config init # Select output format during setupOr override per command:
ax datasets list --output json
ax datasets list --output datasets.csv
ax datasets list --output datasets.parquetIntegrate with scripts:
#!/bin/bash
# Export datasets to JSON
DATASETS=$(ax datasets list --space-id sp_abc123 --output json)
# Process with jq
echo "$DATASETS" | jq '.data[] | select(.name | contains("test"))'
# Export to file
ax datasets list_examples ds_xyz789 --output data.parquetThe CLI respects these environment variables:
ARIZE_API_KEY: Your Arize API keyARIZE_REGION: Region (US, EU, etc.)- Any other
ARIZE_*variables will be detected duringax config init
Enable verbose mode to see detailed SDK logs:
ax datasets list --space-id sp_abc123 --verboseProblem: Config file not found
Solution: Run ax config init to create a configuration profile.
Problem: Invalid API key
Solution: Verify your API key:
- Check your configuration:
ax config show - Regenerate your API key from the Arize UI
- Update your config:
ax config init(overwrite existing)
Problem: Connection refused or SSL errors
Solution:
- Check your routing configuration:
ax config show - Verify network connectivity
- For on-premise installations, ensure
single_hostis configured correctly - For SSL issues, check
security.request_verifysetting (use with caution)
Problem: Tab completion doesn't work
Solution:
- Verify completion is installed: Run the installation command for your shell
- Reload your shell or open a new terminal
- Ensure
axis in your PATH:which ax
Every command has detailed help:
ax --help
ax datasets --help
ax datasets create --help
ax config --help- Documentation: https://docs.arize.com/cli
- Bug Reports: GitHub Issues
- Community: Arize Community Slack
- Email: support@arize.com
We welcome contributions!
- For developers: See DEVELOPMENT.md for architecture, code structure, and development guide
- For contributors: See CONTRIBUTING.md for contribution guidelines (coming soon)
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
See CHANGELOG.md for release notes and version history.
Built with ❤️ by Arize AI