Official Arize CLI tool for managing datasets, experiments, and more
Project description
Arize AX CLI
- 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.
Features
- Dataset Management: Create, list, update, and delete datasets
- Project Management: Organize your ML projects
- Spans & Traces: Query and filter LLM spans and traces
- 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
Installation
Using pip
pip install arize-ax-cli
From source
git clone https://github.com/Arize-ai/arize-ax-cli.git
cd arize-ax-cli
pip install -e .
Verify Installation
ax --version
Quick Start
1. Initialize Configuration
The first time you use the CLI, you'll need to create a configuration profile:
ax profiles create
This 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 profile from detected environment variables? [Y/n]: y
Configuration saved to profile 'default'
You're ready to go! Try: ax datasets list
2. Verify Configuration
Check your configuration:
ax profiles show
3. Start Using the CLI
List your datasets:
ax datasets list
List your projects:
ax projects list
List spans in a project:
ax spans list <project-id>
List traces in a project:
ax traces list <project-id>
Configuration
The Arize CLI uses a flexible configuration system that supports multiple profiles, environment variables, and two setup modes.
Configuration Commands
| Command | Description |
|---|---|
ax profiles create |
Create a new configuration profile interactively |
ax profiles list |
List all available profiles |
ax profiles show |
Display the current profile's configuration |
ax profiles use <profile> |
Switch to a different profile |
ax profiles delete <profile> |
Delete a configuration profile |
Configuration Modes
When you run ax profiles create, you'll be prompted to choose between two configuration modes:
Simple Configuration (Recommended)
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"
Advanced Configuration
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 File Location
Configuration files are stored at:
- Linux/macOS:
~/.arize/profiles/<profile>.toml - Windows:
%USERPROFILE%\.arize\profiles\<profile>.toml
Configuration Reference
All Available Sections
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 = 8
Security (optional, advanced only)
[security]
request_verify = true # Set to false to disable SSL verification (not recommended)
Storage (optional)
[storage]
directory = "~/.arize"
cache_enabled = true
Output (optional)
[output]
format = "table" # Options: table, json, csv, parquet
Using Environment Variables
The CLI can detect and use environment variables in two ways:
1. Auto-Detection During Setup
When you run ax profiles create, the CLI automatically detects existing ARIZE_* environment variables and offers to use them:
ax profiles create
Environment Variable Detection
✓ Detected ARIZE_API_KEY = ak_***************xyz
✓ Detected ARIZE_REGION = US
Create profiles 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}"
2. Manual Environment Variable References
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
Viewing Expanded Values
To see the actual values (with environment variables expanded):
ax profiles show --expand
Without --expand, you'll see the variable references like ${ARIZE_API_KEY}.
Multiple Profiles
Create different profiles for different environments:
# Create a production profile
ax profiles create
# Enter profile name: production
# Create a staging profile
ax profiles create
# Enter profile name: staging
# List all profiles
ax profiles list
# Switch profiles
ax profiles use production
ax profiles use staging
# Use a specific profile for a single command
ax datasets list --profile production
Shell Autocompletion
Enable tab completion for your shell to autocomplete commands, options, and arguments.
Quick Install (Recommended)
The CLI includes a built-in installer that automatically configures completion for your shell:
ax --install-completion
This 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.
Verify Installation
Once installed, test tab completion:
ax <TAB> # Shows available commands (cache, datasets, profiles, projects, spans, traces)
ax datasets <TAB> # Shows dataset subcommands (list, get, create, delete)
ax datasets list --<TAB> # Shows available options
Manual Installation (Alternative)
If 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
Supported Shells
- Bash (Linux, macOS, Windows Git Bash)
- Zsh (macOS default, Oh My Zsh)
- Fish (Linux, macOS)
- PowerShell (Windows)
Commands
Datasets
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)
Projects
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]
Spans
Query LLM spans in a project:
ax spans list <project-id> [--start-time <iso8601>] [--end-time <iso8601>] \
[--filter "<expr>"] [--limit 15] [--cursor <cursor>]
Filter examples:
ax spans list <project-id> --filter "status_code = 'ERROR'"
ax spans list <project-id> --filter "latency_ms > 1000"
ax spans list <project-id> --start-time 2024-01-01T00:00:00Z --end-time 2024-01-02T00:00:00Z
Traces
Query root-level traces (spans with no parent) in a project. Automatically applies
a parent_id = null filter; any additional --filter is ANDed to it:
ax traces list <project-id> [--start-time <iso8601>] [--end-time <iso8601>] \
[--filter "<expr>"] [--limit 15] [--cursor <cursor>]
Filter examples:
ax traces list <project-id> --filter "status_code = 'ERROR'"
ax traces list <project-id> --start-time 2024-01-01T00:00:00Z
Cache
Manage the local cache. The CLI caches downloaded resource data (e.g., dataset examples) locally as Parquet files to avoid redundant API calls. When you fetch a dataset's examples, the results are stored on disk so subsequent requests for the same version load instantly. The cache is automatically invalidated when a resource's updated_at timestamp changes, so you always get fresh data when something changes on the server.
Caching is enabled by default and can be toggled in your profile configuration:
[storage]
cache_enabled = true
# Clear the cache
ax cache clear
Global Options
Available 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)--help, -h: Show help message
Note:
--verbose, -vis available on each individual subcommand (e.g.,ax datasets list --verbose) rather than as a top-level flag.
Usage Examples
Creating a Dataset from a CSV File
ax datasets create \
--name "Customer Churn Dataset" \
--space-id sp_abc123 \
--file ./data/churn.csv
Exporting Dataset List to JSON
ax datasets list --space-id sp_abc123 --output json > datasets.json
Exporting Dataset Examples to Parquet
ax datasets list_examples ds_xyz789 --output examples.parquet
Using a Different Profile for a Command
ax datasets list --space-id sp_abc123 --profile production
Pagination
List 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>
Working with Multiple Environments
# Setup profiles for different environments
ax profiles create # Create "production" profile
ax profiles create # Create "staging" profile
# Switch contexts
ax profiles use production
ax datasets list --space-id sp_prod123
ax profiles use staging
ax datasets list --space-id sp_stage456
Filtering Spans by Status
ax spans list <project-id> --filter "status_code = 'ERROR'" --output json
Listing Traces in a Time Window
ax traces list <project-id> \
--start-time 2024-01-01T00:00:00Z \
--end-time 2024-01-02T00:00:00Z
Advanced Topics
Output Formats
The 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 profiles:
ax profiles create # Select output format during setup
Or override per command:
ax datasets list --output json
ax datasets list --output datasets.csv
ax datasets list --output datasets.parquet
Programmatic Usage
Integrate 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.parquet
Environment Variables
The 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 profiles create
Debugging
Enable verbose mode to see detailed SDK logs:
ax datasets list --space-id sp_abc123 --verbose
Troubleshooting
Configuration Issues
Problem: profiles file not found
Solution: Run ax profiles create to create a configuration profile.
Problem: Invalid API key
Solution: Verify your API key:
- Check your configuration:
ax profiles show - Regenerate your API key from the Arize UI
- Update your profiles:
ax profiles create(overwrite existing)
Connection Issues
Problem: Connection refused or SSL errors
Solution:
- Check your routing configuration:
ax profiles show - Verify network connectivity
- For on-premise installations, ensure
single_hostis configured correctly - For SSL issues, check
security.request_verifysetting (use with caution)
Shell Completion Not Working
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
Getting Help
Command-specific Help
Every command has detailed help:
ax --help
ax datasets --help
ax datasets create --help
ax profiles --help
Support
- Documentation: https://docs.arize.com/cli
- Bug Reports: GitHub Issues
- Community: Arize Community Slack
- Email: support@arize.com
Contributing
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)
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Changelog
See CHANGELOG.md for release notes and version history.
Built with ❤️ by Arize AI
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arize_ax_cli-0.1.3rc0.tar.gz.
File metadata
- Download URL: arize_ax_cli-0.1.3rc0.tar.gz
- Upload date:
- Size: 38.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a98308810abebdd5482b1228c0166df4881cfa2f1360d2a4c2cdef8d729a2777
|
|
| MD5 |
0a234ce78dd6c6a1abbfd8fbbcaa8893
|
|
| BLAKE2b-256 |
9ecadb423bcbcd0c59ba0216276bec3463732755ba8bd33ce7c26e545a82bfd5
|
File details
Details for the file arize_ax_cli-0.1.3rc0-py3-none-any.whl.
File metadata
- Download URL: arize_ax_cli-0.1.3rc0-py3-none-any.whl
- Upload date:
- Size: 47.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e75d17ba580db67fad08aecae9da8ed9c058002d2b14ad4f1c44d588b057bd5
|
|
| MD5 |
ed321047be12f8cdcece3805a286987d
|
|
| BLAKE2b-256 |
3b43b0a7c3502c88e6f3a7c93601ae9484480270ef1b1a3ab16f64f6840e0872
|