| name | arize-projects |
| description | Manage projects in Arize AI using the ax CLI. Use when users want to list projects, get project details, create new projects, delete projects, or organize work within Arize spaces. Triggers on "list projects", "create project", "ax projects", "delete project", or any request about managing Arize projects via CLI. |
Arize AX Projects
Manage projects in the Arize AI platform using the ax CLI.
Prerequisites
The user must have:
- Arize AX CLI installed (
pip install arize-ax-cli)
- CLI configured with valid credentials (
ax config init)
Core Project Commands
List Projects
ax projects list
Options:
--space-id <id> - Space ID to list projects from (uses config default if not set)
--limit, -n <count> - Maximum number of projects to return (default: 15)
--cursor <token> - Pagination cursor for next page
--output, -o <format> - Output format: table (default), json, csv, parquet, or a file path
--profile, -p <name> - Configuration profile to use
--verbose, -v - Enable verbose logs
Examples:
ax projects list
ax projects list --output json
ax projects list --space-id sp_abc123
ax projects list -n 5
ax projects list --profile production
Extracting Project IDs:
ax projects list --output json | jq '.[] | {id: .id, name: .name}'
ax projects list --output json | jq -r '.[] | select(.name == "My Project") | .id'
PROJECT_ID=$(ax projects list --output json | jq -r '.[] | select(.name == "My Project") | .id')
echo "Found project: $PROJECT_ID"
Without jq (using grep):
ax projects list --output json | grep -B 1 '"name": "My Project"' | grep "id" | cut -d'"' -f4
Resolving Project Names to IDs
The CLI commands (get, delete) require a project ID, not a name. When a user refers to a project by name, resolve the ID first using projects list:
- Run
ax projects list --output json
- Parse the JSON to find the project matching the requested name
- Use the resolved ID for subsequent commands
If no exact match is found, check for partial or case-insensitive matches and confirm with the user before proceeding. If multiple matches exist, present the options and ask the user to choose.
PROJECT_ID=$(ax projects list --output json | jq -r '.[] | select(.name == "ML Experiments") | .id')
if [ -z "$PROJECT_ID" ]; then
echo "Project not found. Available projects:"
ax projects list --output json | jq '.[] | {id: .id, name: .name}'
else
ax projects get "$PROJECT_ID"
fi
Get Project Details
Retrieve information about a specific project:
ax projects get <project-id>
Arguments:
id (required) - The project ID
Options:
--output, -o <format> - Output format: table (default), json, csv, parquet, or a file path
--profile, -p <name> - Configuration profile to use
--verbose, -v - Enable verbose logs
Examples:
ax projects get proj_abc123
ax projects get proj_abc123 --output json
ax projects get proj_abc123 --profile production
Create a Project
Create a new project in a space:
ax projects create --name <name> --space-id <space-id>
Options:
--name, -n <name> (required) - Project name (prompted interactively if not provided)
--space-id <id> (required) - Space ID to create the project in (prompted interactively if not provided)
--output, -o <format> - Output format: table (default), json, csv, parquet, or a file path
--profile, -p <name> - Configuration profile to use
--verbose, -v - Enable verbose logs
Examples:
ax projects create --name "ML Experiments" --space-id sp_abc123
ax projects create
ax projects create --name "Staging Tests" --space-id sp_abc123 --output json
ax projects create --name "Production Project" --space-id sp_abc123 --profile production
Delete a Project
Remove a project by ID:
ax projects delete <project-id>
Arguments:
id (required) - The project ID
Options:
--force, -f - Skip confirmation prompt
--profile, -p <name> - Configuration profile to use
--verbose, -v - Enable verbose logs
Examples:
ax projects delete proj_abc123
ax projects delete proj_abc123 --force
ax projects delete proj_abc123 --profile production
Warning: Deletion is permanent. Always verify the project ID before deleting.
Pagination
The projects list command uses cursor-based pagination. The response includes a cursor for fetching the next page:
ax projects list -n 10 --output json
ax projects list -n 10 --cursor <cursor-from-previous-response>
Common Workflows
Workflow 1: Find Project by Name and Get Details
ax projects list --output json | jq '.[] | {id: .id, name: .name}'
PROJECT_ID=$(ax projects list --output json | jq -r '.[] | select(.name == "ML Experiments") | .id')
ax projects get "$PROJECT_ID"
Workflow 2: Create and Verify a Project
ax projects create --name "New Experiment" --space-id sp_abc123
PROJECT_ID=$(ax projects list --output json | jq -r '.[] | select(.name == "New Experiment") | .id')
echo "Created project: $PROJECT_ID"
ax projects get "$PROJECT_ID"
Workflow 3: Work with Projects Across Environments
ax projects list --profile production
ax projects create --name "Test Project" --space-id sp_staging_123 --profile staging
ax projects get proj_dev_456 --profile dev
Workflow 4: Cleanup Old Projects
ax projects list --output json | jq '.[] | {id: .id, name: .name}'
ax projects delete proj_old_001 --force
ax projects delete proj_old_002 --force
Output Format Examples
Table Format (Default)
Human-readable table with columns for ID, Name, Created, and other metadata.
JSON Format
Structured JSON with full project metadata:
{
"id": "proj_abc123",
"name": "ML Experiments",
"space_id": "sp_xyz789",
"created_at": "2024-01-15T10:30:00Z"
}
CSV / Parquet
Use --output csv or --output parquet for data-processing-friendly formats. You can also pass a file path to write directly to a file:
ax projects list --output projects.csv
ax projects list --output projects.parquet
Troubleshooting
"Project not found"
- Verify project ID:
ax projects list
- Check you're using the correct profile:
ax config show
- Ensure the project exists in the current space
"Permission denied" or "Unauthorized"
- Check API key is valid:
ax config show --expand
- Verify the key has project permissions in Arize
- Try re-authenticating:
ax config init
"Space not found" when creating
- Verify the space ID is correct
- Check your profile has the right space configured:
ax config show
- List available spaces or check https://app.arize.com
Cannot list projects
- Check CLI is configured:
ax config show
- Verify network connectivity
- Try with
--verbose for more detail: ax projects list --verbose
Tips
- Extract project IDs by name:
PROJECT_ID=$(ax projects list --output json | jq -r '.[] | select(.name == "My Project") | .id')
- Use JSON output for scripting:
ax projects list --output json | jq '.[] | .id'
- List IDs and names together:
ax projects list --output json | jq '.[] | {id, name}'
- Verify before delete: Use
ax projects get "$PROJECT_ID" to confirm before deleting
- Profile naming: Use descriptive names like
prod, staging, dev
- Use
--force in scripts: Skip interactive confirmation with -f when automating
Next Steps
When to Use This Skill
Use this skill when users want to:
- ✅ List all projects in their Arize space
- ✅ Get details about a specific project
- ✅ Create a new project
- ✅ Delete projects they no longer need
- ✅ Work with projects across multiple environments/profiles
Don't use this skill for:
- ❌ Managing datasets (use
/arize-datasets instead)
- ❌ Installing/configuring the CLI (use
/setup-arize-cli instead)