---
title: Launch a pod
description: Bring up a GPU inference pod with argusctl compute up, including the server-side LAUNCH confirmation, the high-cost 428 gate, and how to verify the pod is running.
---

# Launch a pod



## Goal

Launch a new GPU inference pod through the audited `/compute/ops/launch` endpoint and confirm it shows up as a running worker.

## Prerequisites

* A PAT with the **`compute:write`** scope (the `admin-full` preset includes it). Store it with `argusctl login --token pat_...` or set `ARGUS_PAT`.
* A reason for the launch. Every compute write requires `--reason` (3 to 500 characters) and the reason is audited.
* Optional but recommended: check current pricing first so you know what the pod will cost. See [Planner decisions and the pricing catalog](/docs/compute/planner-catalog).

## Steps (CLI)

1. Preview the call without sending it:

   ```bash
   argusctl compute up --gpu-type "NVIDIA GeForce RTX 4090" --image my/image:tag \
     --reason "bring up inference" --dry-run
   ```

2. Run it for real. `launch` is an alias for `up`:

   ```bash
   argusctl compute up --gpu-type "NVIDIA GeForce RTX 4090" --image my/image:tag \
     --reason "bring up inference"
   ```

   The server requires a step-up confirmation value of `confirm: "LAUNCH"` on this endpoint; the CLI sends it for you.

3. If the catalog rate for the requested GPU exceeds the high-cost threshold, the server returns **`428`** and refuses the launch until you explicitly acknowledge the cost:

   ```bash
   argusctl compute up --gpu-type "NVIDIA GeForce RTX 4090" --image my/image:tag \
     --reason "bring up inference" --confirm-high-cost
   ```

## Console

The Operations Console COMPUTE page (route `#/compute`) is the live surface for the result: the RUNNING PODS section shows one card per worker with status badge, GPU, $/hr, cameras, pod id, and the stores and cameras it serves. Status patches in place on the 15 second refresh tick, so a newly launched pod appears without reloading. Compute mutations from the console use the same `compute:write` scope, step-up confirmation, and audit as the CLI.

## Verify

```bash
argusctl compute list     # the new worker appears with its status and $/hr
argusctl compute served   # running pods plus the stores/cameras each serves
```

A freshly launched pod with no camera assignments reads as idle ("idle, no cameras assigned") until cameras are assigned to it.

## Troubleshooting

* **`428` returned.** The catalog $/hr for the requested GPU exceeds the high-cost threshold. Re-run with `--confirm-high-cost` if the spend is intentional.
* **`429` returned (CLI exit code 6).** You hit the per-operator rate limit on `/compute/ops/*` (20 calls per 60 seconds). Wait and retry.
* **Auth failures.** Exit code 4 is a 401 (bad or missing PAT); exit code 5 is a 403 (your PAT lacks `compute:write`). Mint a token with the right scope under Settings, API Tokens in the console, or with `argusctl tokens create`.
* **Missing or short reason.** `--reason` is required and must be 3 to 500 characters.


---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)