Skip to main content

Commands Reference

This page documents all available Chamber CLI commands and their options.

Global Flags

These flags are available on all commands:
FlagDescription
-o, --outputOutput format: table (default), json, yaml
-h, --helpShow 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
FlagDescription
-c, --conversationNamed conversation thread (alphanumeric, hyphens, underscores, max 64 chars)
-m, --modelAI model selection
-i, --imageAttach image file (PNG, JPG, GIF, WebP) — single-shot and piped modes only
--no-streamBuffer full response (auto-enabled when stdout is piped)
--rawDisable markdown rendering
-l, --listList 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
FlagDescription
-t, --tokenAPI token for authentication

chamber logout

Remove stored credentials.
chamber logout

chamber whoami

Display current user information.
chamber whoami
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
FlagDescription
--team, -tTeam ID (required)
--gpus, -gNumber of GPUs
--gpu-typeGPU type: H100, A100, L40S, etc.
--class, -cWorkload class: RESERVED or ELASTIC
--name, -nWorkload name
--entrypointOverride detected Python entrypoint
--entrypoint-argsArguments for the entrypoint
--registryContainer registry URL
--dockerfileUse existing Dockerfile
--dry-runPreview without building/submitting
--save-dockerfileSave generated Dockerfile
--save-manifestSave generated K8s manifest
--no-cacheForce 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
FlagDescription
-s, --statusFilter by status: PENDING, QUEUED, RUNNING, COMPLETED, FAILED, CANCELLED, PREEMPTED
-i, --initiativeFilter by team ID
--submitted-byFilter by submitter user ID
-l, --limitMaximum 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
FlagDescription
--time-rangeTime range: today, this_week, this_month, last_7_days (default), last_30_days
--group-byGroup 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
FlagDescription
-n, --nameWorkload name (required)
--initiativeTeam ID (required)
-g, --gpusNumber of GPUs
--gpu-typeGPU type: H100, A100, etc. (required unless using template)
-c, --classWorkload class: RESERVED or ELASTIC (default: ELASTIC)
-p, --priorityPriority: critical, high, normal, low, background
--external-idYour own workload identifier
-m, --manifestPath to Kubernetes manifest YAML
--templateUse a template instead of specifying flags
--scaling-modegang or elastic (default: gang)
--podsNumber of pods for distributed training
--gpus-per-podGPUs per pod (manual distribution)
--min-podsMinimum pods for elastic scaling
-i, --interactiveInteractive 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
FlagDescription
--nameTeam name (required)
--descriptionTeam description
--parentParent 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>
FlagDescription
--initiativeTeam 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
FlagDescription
--initiativeTeam ID (required)
--reservationReservation ID (required)
--instancesNumber 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
FlagDescription
--nameFilter by template name
--scopeFilter by scope: PERSONAL, PROJECT, ORGANIZATION
--include-systemInclude 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
FlagDescription
--typeFilter by registry type: doogle, ecr, gcr, acr
-l, --limitMaximum 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
FlagDescription
-n, --nameRepository name (required)
-d, --descriptionRepository description
--typeRegistry 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
FlagDescription
-r, --repoRepository ID (required)
-t, --tagFilter by image tag
-l, --limitMaximum 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
FlagDescription
--dockerOutput 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
FlagDescription
--initiativeFilter by team ID
--time-rangeTime range: last_1h, last_6h, last_24h (default), last_7d, last_30d
--group-byGroup metrics by: team

Configuration

chamber config show

Display current configuration.
chamber config show

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
KeyDescription
organization_idDefault organization for API requests
api_urlChamber API URL

System

chamber health

Check API health status.
chamber health

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')
Early Access — The Chamber CLI is currently in early access. Contact support@usechamber.com to get started.