Commands Reference
This page documents all available Chamber CLI commands and their options.
Global Flags
These flags are available on all commands:
| Flag | Description |
|---|
-o, --output | Output format: table (default), json, yaml |
-h, --help | Show help for any command |
AI Chat
chamber chat
Ask questions about your GPU infrastructure using natural language. The assistant can also suggest and execute CLI commands on your behalf with confirmation. See AI Assistant for the complete guide.
# Quick question
chamber chat "what jobs are running right now?"
# Interactive conversation
chamber chat
# Named conversation (resume later)
chamber chat -c my-thread "help me debug this failure"
# Pipe input for analysis
kubectl logs my-pod | chamber chat "what errors are in these logs?"
# Attach an image
chamber chat -i gpu-metrics.png "what does this graph show?"
# List recent conversations
chamber chat --list
| Flag | Description |
|---|
-c, --conversation | Named conversation thread (alphanumeric, hyphens, underscores, max 64 chars) |
-m, --model | AI model selection |
-i, --image | Attach image file (PNG, JPG, GIF, WebP) — single-shot and piped modes only |
--no-stream | Buffer full response (auto-enabled when stdout is piped) |
--raw | Disable markdown rendering |
-l, --list | List recent conversations |
Chat requires browser-based login (chamber login). API tokens (--token) are not supported for chat.
Authentication
chamber login
Authenticate with Chamber.
# Browser-based login (interactive)
chamber login
# Token-based login (headless/scripted)
chamber login --token ch.your-api-token
| Flag | Description |
|---|
-t, --token | API token for authentication |
chamber logout
Remove stored credentials.
chamber whoami
Display current user information.
Example output:
Email: user@example.com
User ID: 550e8400-e29b-41d4-a716-446655440000
Token expires: 2024-01-15T10:30:00Z
Organization: my-org-id
Run (Auto-Containerize)
The run command automatically containerizes and submits your training code. See Auto-Containerize with Run for complete documentation.
chamber run
Auto-containerize and submit a GPU workload.
# Preview what will be generated
chamber run ./my-project --gpus 4 --gpu-type H100 --team <team-id> --dry-run
# Build, push, and submit
chamber run ./my-project --gpus 4 --gpu-type H100 --team <team-id>
# With custom entrypoint
chamber run ./my-project \
--gpus 8 \
--gpu-type H100 \
--team <team-id> \
--entrypoint train.py \
--entrypoint-args "--config config.yaml"
# Use reserved capacity
chamber run ./my-project --gpus 4 --gpu-type H100 --team <team-id> --class RESERVED
| Flag | Description |
|---|
--team, -t | Team ID (required) |
--gpus, -g | Number of GPUs |
--gpu-type | GPU type: H100, A100, L40S, etc. |
--class, -c | Workload class: RESERVED or ELASTIC |
--name, -n | Workload name |
--entrypoint | Override detected Python entrypoint |
--entrypoint-args | Arguments for the entrypoint |
--registry | Container registry URL |
--dockerfile | Use existing Dockerfile |
--dry-run | Preview without building/submitting |
--save-dockerfile | Save generated Dockerfile |
--save-manifest | Save generated K8s manifest |
--no-cache | Force Docker rebuild |
Use --dry-run to preview the generated Dockerfile and manifest before submitting.
Prerequisites: Docker, AWS CLI (for ECR). See Auto-Containerize with Run for setup instructions.
Workloads
Manage GPU workloads. Aliases: wl, jobs
chamber workloads list
List workloads with optional filters.
# List all workloads
chamber workloads list
# Filter by status
chamber workloads list --status RUNNING
# Filter by initiative
chamber workloads list --initiative abc123
# Limit results
chamber workloads list --limit 50
# Output as JSON
chamber workloads list -o json
| Flag | Description |
|---|
-s, --status | Filter by status: PENDING, QUEUED, RUNNING, COMPLETED, FAILED, CANCELLED, PREEMPTED |
-i, --initiative | Filter by team ID |
--submitted-by | Filter by submitter user ID |
-l, --limit | Maximum results (1-100, default: 20) |
Example output:
ID Name Status GPUs Type Class Submitted
-------- ---------------------- -------- ---- ---- -------- ----------------
a1b2c3d4 gpt-finetune-v2 RUNNING 8 H100 RESERVED 2024-01-15T09:30
e5f6g7h8 embedding-training QUEUED 4 A100 ELASTIC 2024-01-15T09:15
chamber workloads get
Get detailed information about a specific workload.
chamber workloads get <workload-id>
# Output as JSON
chamber workloads get <workload-id> -o json
Example output:
ID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Name: gpt-finetune-v2
Status: RUNNING
Workload Class: RESERVED
Priority: 75
GPUs: 8 x H100
Initiative: ml-training-team
Submitted By: user@example.com
Submitted At: 2024-01-15T09:30:00Z
Started At: 2024-01-15T09:32:15Z
chamber workloads stats
Get aggregated workload statistics.
# Default: last 7 days
chamber workloads stats
# Custom time range
chamber workloads stats --time-range last_30_days
# Group by submitter
chamber workloads stats --group-by submitted_by
| Flag | Description |
|---|
--time-range | Time range: today, this_week, this_month, last_7_days (default), last_30_days |
--group-by | Group results by: submitted_by, initiative_id, instance_type |
chamber workloads metrics
Get GPU metrics for a running workload.
chamber workloads metrics <workload-id>
Example output:
GPU Metrics:
Metric Current Avg Min Max
--------------- ------- ---- ---- ----
Utilization (%) 92.5 88.3 45.0 98.0
Memory (%) 78.2 75.1 60.0 82.0
Temperature (C) 72 68 55 76
Power (W) 420 385 250 450
chamber workloads cancel
Cancel a running or queued workload.
chamber workloads cancel <workload-id>
Submit Workloads
chamber submit
Submit a new GPU workload.
# Interactive mode
chamber submit -i
# With flags
chamber submit \
--name "my-training-job" \
--gpus 8 \
--gpu-type H100 \
--class RESERVED \
--initiative abc123
# With Kubernetes manifest
chamber submit \
--name "custom-job" \
--gpus 4 \
--gpu-type A100 \
--class ELASTIC \
--initiative abc123 \
--manifest job.yaml
# Using a template
chamber submit \
--name "my-job" \
--initiative abc123 \
--template template-id
| Flag | Description |
|---|
-n, --name | Workload name (required) |
--initiative | Team ID (required) |
-g, --gpus | Number of GPUs |
--gpu-type | GPU type: H100, A100, etc. (required unless using template) |
-c, --class | Workload class: RESERVED or ELASTIC (default: ELASTIC) |
-p, --priority | Priority: critical, high, normal, low, background |
--external-id | Your own workload identifier |
-m, --manifest | Path to Kubernetes manifest YAML |
--template | Use a template instead of specifying flags |
--scaling-mode | gang or elastic (default: gang) |
--pods | Number of pods for distributed training |
--gpus-per-pod | GPUs per pod (manual distribution) |
--min-pods | Minimum pods for elastic scaling |
-i, --interactive | Interactive mode with prompts |
Use --class RESERVED for guaranteed capacity that won’t be preempted. Use --class ELASTIC for lower-priority workloads that can run on spare capacity.
Capacity
chamber capacity
View capacity pools and budget information.
chamber capacity
# Output as JSON
chamber capacity -o json
Example output:
Budget:
Allocated: 10000 GPU-hours
Used: 4500 GPU-hours
Available: 5500 GPU-hours
Capacity Pools:
ID Name GPU Type Total Used Available
-------- ---------------- -------- ----- ---- ---------
pool-001 us-west-h100 H100 64 48 16
pool-002 us-east-a100 A100 128 96 32
Teams
Manage teams. Aliases: team, initiatives
chamber teams list
List all teams you have access to.
# List all teams
chamber teams list
# Output as JSON
chamber teams list -o json
Example output:
ID Name Description Parent
-------- ------------------- --------------------------- --------
team-001 ML Research Main ML research team -
team-002 NLP Projects Natural language processing team-001
team-003 Computer Vision CV and image processing team-001
chamber teams get
Get detailed information about a specific team.
chamber teams get <team-id>
chamber teams create
Create a new team or sub-team.
# Create a root team (requires ORG_ADMIN)
chamber teams create --name "New Team" --description "Team description"
# Create a sub-team under an existing team
chamber teams create --name "Sub Team" --parent parent-team-id
| Flag | Description |
|---|
--name | Team name (required) |
--description | Team description |
--parent | Parent team ID (for creating sub-teams) |
Creating root-level teams requires ORG_ADMIN permissions. Sub-teams can be created by team members.
Allocations
Manage capacity allocations for teams. Aliases: alloc
chamber allocations list
List allocations for a team.
chamber allocations list --initiative <team-id>
| Flag | Description |
|---|
--initiative | Team ID (required) |
Example output:
ID Reservation Instances Status Expires
---------- ------------- --------- ------- ----------------
alloc-001 res-h100-west 4 ACTIVE 2024-06-30T23:59
alloc-002 res-a100-east 8 ACTIVE 2024-12-31T23:59
chamber allocations get
Get detailed information about a specific allocation.
chamber allocations get <allocation-id>
chamber allocations create
Create a new allocation for a team. Requires ORG_ADMIN permissions.
chamber allocations create \
--initiative <team-id> \
--reservation <reservation-id> \
--instances 4
| Flag | Description |
|---|
--initiative | Team ID (required) |
--reservation | Reservation ID (required) |
--instances | Number of instances to allocate (required) |
Templates
Manage reusable workload templates. Aliases: template, tpl
chamber templates list
List available templates.
# List all templates
chamber templates list
# Filter by name
chamber templates list --name "training"
# Filter by scope
chamber templates list --scope ORGANIZATION
# Include system templates
chamber templates list --include-system
| Flag | Description |
|---|
--name | Filter by template name |
--scope | Filter by scope: PERSONAL, PROJECT, ORGANIZATION |
--include-system | Include system-provided templates |
Example output:
ID Name Scope GPU Type GPUs
----------- -------------------- ------------ -------- ----
tpl-001 standard-training ORGANIZATION H100 8
tpl-002 inference-job ORGANIZATION A100 4
tpl-003 my-custom-template PERSONAL H100 16
chamber templates get
Get detailed information about a specific template.
chamber templates get <template-id>
Artifacts (Container Images)
Manage container images and artifact repositories. Aliases: artifact, images
Chamber supports multiple registry types:
- Doogle - Doogle Artifact Repository (default, managed by Chamber)
- ECR - AWS Elastic Container Registry
- GCR - Google Container Registry
- ACR - Azure Container Registry
chamber artifacts repos list
List artifact repositories in your organization.
# List all repositories
chamber artifacts repos list
# Filter by registry type
chamber artifacts repos list --type doogle
# Output as JSON
chamber artifacts repos list -o json
| Flag | Description |
|---|
--type | Filter by registry type: doogle, ecr, gcr, acr |
-l, --limit | Maximum results (default: 20) |
Example output:
ID Name Type URI Images Created
-------- ---------------- ------ ------------------------------------- ------ ----------------
repo-001 ml-training doogle doogle.usechamber.io/org123/ml-train 12 2024-01-15T09:30
repo-002 inference-models ecr 123456.dkr.ecr.us-east-1.amazonaws.com 5 2024-01-10T14:20
chamber artifacts repos get
Get detailed information about a specific repository.
chamber artifacts repos get <repository-id>
chamber artifacts repos get <repository-id> -o json
chamber artifacts repos create
Create a new artifact repository.
# Create a Doogle repository (recommended)
chamber artifacts repos create --name my-models
# Create with description
chamber artifacts repos create --name training-images --description "Training container images"
# Create ECR repository
chamber artifacts repos create --name my-ecr-repo --type ecr
| Flag | Description |
|---|
-n, --name | Repository name (required) |
-d, --description | Repository description |
--type | Registry type: doogle (default), ecr, gcr, acr |
Use Doogle Artifact Repository for a fully managed experience with no additional cloud setup required.
chamber artifacts repos delete
Delete an artifact repository.
chamber artifacts repos delete <repository-id>
This will delete all images in the repository. This action cannot be undone.
chamber artifacts list
List container images in a repository.
# List images in a repository
chamber artifacts list --repo <repository-id>
# Filter by tag
chamber artifacts list --repo <repository-id> --tag latest
# Output as JSON
chamber artifacts list --repo <repository-id> -o json
| Flag | Description |
|---|
-r, --repo | Repository ID (required) |
-t, --tag | Filter by image tag |
-l, --limit | Maximum results (default: 20) |
Example output:
Digest Tags Size Pushed At
-------------------- ------------ -------- ----------------
sha256:a1b2c3d4... latest, v1.2 1.2 GB 2024-01-15T10:30
sha256:e5f6g7h8... v1.1 1.1 GB 2024-01-14T09:15
sha256:i9j0k1l2... <untagged> 980 MB 2024-01-13T14:45
chamber artifacts get
Get detailed information about a specific artifact (image).
chamber artifacts get <artifact-id>
chamber artifacts get <artifact-id> -o json
chamber artifacts delete
Delete an artifact (image) from a repository.
chamber artifacts delete <artifact-id>
chamber artifacts login
Get Docker login credentials for pushing/pulling images.
# Get credentials
chamber artifacts login
# Get credentials for a specific repository
chamber artifacts login <repository-id>
# Output docker login command (can be piped to sh)
chamber artifacts login --docker
# Login directly with Docker
chamber artifacts login --docker | sh
| Flag | Description |
|---|
--docker | Output full docker login command |
Example output:
Registry: doogle.usechamber.io
Username: chamber
Password: eyJhbGc...
Expires At: 2024-01-15T16:30:00Z
To login with Docker:
docker login -u chamber -p <password> doogle.usechamber.io
Metrics
chamber metrics
View organization-wide GPU metrics.
# Default: last 24 hours
chamber metrics
# Filter by team
chamber metrics --initiative <team-id>
# Custom time range
chamber metrics --time-range last_7d
# Group by team
chamber metrics --group-by team
# Output as JSON
chamber metrics -o json
| Flag | Description |
|---|
--initiative | Filter by team ID |
--time-range | Time range: last_1h, last_6h, last_24h (default), last_7d, last_30d |
--group-by | Group metrics by: team |
Configuration
chamber config show
Display current configuration.
chamber config get
Get a specific configuration value.
chamber config get organization_id
chamber config get api_url
chamber config set
Set a configuration value.
chamber config set organization_id your-org-id
chamber config set api_url https://api.usechamber.io/v1
| Key | Description |
|---|
organization_id | Default organization for API requests |
api_url | Chamber API URL |
System
chamber health
Check API health status.
chamber completion
Generate shell completion scripts.
chamber completion bash
chamber completion zsh
chamber completion fish
JSON Output
All commands support -o json for machine-readable output:
# Get workloads as JSON
chamber workloads list -o json
# Pipe to jq for filtering
chamber workloads list -o json | jq '.[] | select(.status == "RUNNING")'
# Use in scripts
WORKLOAD_ID=$(chamber workloads list -o json | jq -r '.[0].id')