> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usechamber.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Commands Reference

> Complete reference for all Chamber CLI commands

# 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](/cli/chat) for the complete guide.

```bash theme={null}
# 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                                                    |

<Info>
  Chat requires browser-based login (`chamber login`). API tokens (`--token`) are not supported for chat.
</Info>

***

## Authentication

### `chamber login`

Authenticate with Chamber.

```bash theme={null}
# 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.

```bash theme={null}
chamber logout
```

### `chamber whoami`

Display current user information.

```bash theme={null}
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](/cli/run) for complete documentation.

### `chamber run`

Auto-containerize and submit a GPU workload.

```bash theme={null}
# 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                    |

<Tip>
  Use `--dry-run` to preview the generated Dockerfile and manifest before submitting.
</Tip>

**Prerequisites:** Docker, AWS CLI (for ECR). See [Auto-Containerize with Run](/cli/run) for setup instructions.

***

## Workloads

Manage GPU workloads. Aliases: `wl`, `jobs`

### `chamber workloads list`

List workloads with optional filters.

```bash theme={null}
# 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.

```bash theme={null}
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.

```bash theme={null}
# 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.

```bash theme={null}
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.

```bash theme={null}
chamber workloads cancel <workload-id>
```

***

## Submit Workloads

### `chamber submit`

Submit a new GPU workload.

```bash theme={null}
# 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                                   |

<Tip>
  Use `--class RESERVED` for guaranteed capacity that won't be preempted. Use `--class ELASTIC` for lower-priority workloads that can run on spare capacity.
</Tip>

***

## Capacity

### `chamber capacity`

View capacity pools and budget information.

```bash theme={null}
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.

```bash theme={null}
# 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.

```bash theme={null}
chamber teams get <team-id>
```

### `chamber teams create`

Create a new team or sub-team.

```bash theme={null}
# 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) |

<Note>
  Creating root-level teams requires ORG\_ADMIN permissions. Sub-teams can be created by team members.
</Note>

***

## Allocations

Manage capacity allocations for teams. Aliases: `alloc`

### `chamber allocations list`

List allocations for a team.

```bash theme={null}
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.

```bash theme={null}
chamber allocations get <allocation-id>
```

### `chamber allocations create`

Create a new allocation for a team. Requires ORG\_ADMIN permissions.

```bash theme={null}
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.

```bash theme={null}
# 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.

```bash theme={null}
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.

```bash theme={null}
# 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.

```bash theme={null}
chamber artifacts repos get <repository-id>
chamber artifacts repos get <repository-id> -o json
```

### `chamber artifacts repos create`

Create a new artifact repository.

```bash theme={null}
# 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` |

<Tip>
  Use Doogle Artifact Repository for a fully managed experience with no additional cloud setup required.
</Tip>

### `chamber artifacts repos delete`

Delete an artifact repository.

```bash theme={null}
chamber artifacts repos delete <repository-id>
```

<Warning>
  This will delete all images in the repository. This action cannot be undone.
</Warning>

### `chamber artifacts list`

List container images in a repository.

```bash theme={null}
# 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).

```bash theme={null}
chamber artifacts get <artifact-id>
chamber artifacts get <artifact-id> -o json
```

### `chamber artifacts delete`

Delete an artifact (image) from a repository.

```bash theme={null}
chamber artifacts delete <artifact-id>
```

### `chamber artifacts login`

Get Docker login credentials for pushing/pulling images.

```bash theme={null}
# 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.

```bash theme={null}
# 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.

```bash theme={null}
chamber config show
```

### `chamber config get`

Get a specific configuration value.

```bash theme={null}
chamber config get organization_id
chamber config get api_url
```

### `chamber config set`

Set a configuration value.

```bash theme={null}
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.

```bash theme={null}
chamber health
```

### `chamber completion`

Generate shell completion scripts.

```bash theme={null}
chamber completion bash
chamber completion zsh
chamber completion fish
```

***

## JSON Output

All commands support `-o json` for machine-readable output:

```bash theme={null}
# 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')
```

<Info>
  **Early Access** — The Chamber CLI is currently in early access. Contact [support@usechamber.io](mailto:support@usechamber.io) to get started.
</Info>
