# AI Agent Workflows # AI Agent Workflows GPU CLI works well with coding agents that share your local workspace. The practical workflow today is: 1. install and authenticate GPU CLI locally 2. let the agent inspect your repo and generate or edit `gpu.jsonc` 3. use `gpu agent-docs` when the agent needs machine-oriented command and workflow reference 4. run `gpu run`, `gpu llm run`, `gpu use`, or `gpu serverless` from the same repo ## Start with `gpu agent-docs` `gpu agent-docs` prints agent-focused reference material to stdout. ```bash gpu agent-docs gpu agent-docs | head -50 ``` Use it when your agent needs a compact source of truth for: * command names and examples * workflow shape * JSON output behavior * common troubleshooting hints ## Good Agent Tasks Agents are a good fit for: * generating `gpu.jsonc` from a project description * choosing GPU types and output patterns * setting up `gpu llm` and template workflows * debugging sync, auth, and startup issues * adding provider or model-hub auth instructions to project docs ## Common Workflows ### Generate a project config ```text Create a gpu.jsonc for fine-tuning on an RTX 4090, sync checkpoints/, and keep the pod warm for 20 minutes. ``` ### Set up a routed LLM pod ```text Configure this repo for gpu llm run with vLLM and a HuggingFace model. ``` ### Turn a project into a reusable template ```text Create a gpu.jsonc template with startup, ports, and hooks so I can run it with gpu use. ``` ## Built-In GPU CLI Paths to Know * `gpu run`: general remote command execution * `gpu llm run`: routed Ollama or vLLM workflow * `gpu use ollama` / `gpu use vllm`: official LLM templates * `gpu comfyui ...`: curated ComfyUI workflows * `gpu serverless ...`: RunPod Serverless deployment ## Official Templates Mentioned Often by Agents * `hello-gpu` * `ollama` * `vllm` * `invokeai` * `crewai` * `image-to-3d` * `qwen` * `chatterbox` ## Requirements * [GPU CLI](/docs/quickstart) installed and authenticated * a coding agent that can read and edit the same local workspace you use * provider credentials configured with `gpu auth runpod` (or the relevant provider), or an exported provider API key such as `RUNPOD_API_KEY`; `gpu login` is not required ## Related Docs * [LLM Inference](/docs/llm) * [Configuration](/docs/configuration) * [Commands Reference](/docs/commands) * [Troubleshooting](/docs/troubleshooting) --- # Commands Reference # Commands Reference This page tracks the public GPU CLI surface that ships today. Use `gpu --help` for a quick overview, `gpu --help-all` for advanced and hidden commands, and [LLM Inference](/docs/llm) for the routed LLM workflow. ## gpu run Run any command on a remote GPU pod. ```bash gpu run ``` ### Common examples ```bash gpu run python train.py gpu run -d python long_job.py gpu run -p 8080:8080 python server.py gpu run --gpu-type "RTX 4090" python train.py gpu run --attach job_abc123 ``` ### Key flags | Flag | Description | | -------------------------------- | ---------------------------------------------------- | | `--attach, -a ` | Reattach to an existing job | | `--detach, -d` | Submit the job and return immediately | | `--status, -s` | Show current pod state and recent jobs | | `--cancel ` | Cancel a running job | | `--tail, -n ` | Show last N lines when attaching to a completed job | | `--interactive, -i` | Allocate a PTY and keep stdin open | | `--gpu-type ` | Override GPU type for this run | | `--gpu-count ` | Request multiple GPUs (1-8) | | `--min-vram ` | Set fallback VRAM floor | | `--rebuild` | Force pod recreation when the Dockerfile has changed | | `--output, -o ` | Override synced output paths | | `--no-output` | Disable output syncing | | `--sync` | Wait for output sync before exiting | | `--outputs` | Show live daemon-managed output sync events | | `--output-summary` | Show a brief sync summary on completion | | `--no-summary` | Suppress the end-of-run summary banner | | `--show-sync` | Show detailed sync progress | | `--force-sync` | Ignore change detection and do a full sync | | `--remote-path ` | Override the remote workspace path | | `--publish, -p <[LOCAL:]REMOTE>` | Publish remote ports to localhost | | `--no-port-forward` | Disable automatic port detection | | `--no-persistent-proxy` | Stop the local proxy when the pod stops | | `--env, -e ` | Set environment variables | | `--json` | JSON output after submit; only works with `--detach` | ## gpu serve Serve ML models on cloud GPUs with automatic configuration. Resolves the right GPU, engine, and quantization for your model. ```bash gpu serve meta-llama/Llama-3.3-70B-Instruct --dry-run gpu serve llama-70b --quantize int4 --budget 2.00 --dry-run gpu serve deepseek-r1:70b --users 50 -y gpu serve llama-8b whisper-large-v3 --dry-run ``` ### Key flags | Flag | Description | | --------------------- | ----------------------------------------------------- | | `--dry-run` | Show GPU recommendation without launching | | `-y, --yes` | Skip confirmation and launch immediately | | `--quantize ` | Quantization: `fp16`, `int8`, `int4`, `gguf-q4`, etc. | | `--gpu ` | Override GPU type (e.g., `h100`, `a100`) | | `--gpu-count ` | Override GPU count (1-8) | | `--engine ` | Override engine: `vllm`, `ollama`, `llamacpp` | | `--context ` | Override context window size | | `--users ` | Target concurrent users (affects GPU sizing) | | `--budget ` | Maximum hourly cost; shows comparison table | | `--optimize ` | Optimization: `cost`, `latency`, `balanced` | Supports LLMs, diffusion models (FLUX, SDXL), STT (Whisper), and TTS (Kokoro). See the model catalog for supported models and aliases. ## gpu attach Reattach to a job by ID. This is a focused alias for `gpu run --attach`. ```bash gpu attach job_abc123 gpu attach job_abc123 --tail 50 ``` ## gpu wait Block until a job reaches a terminal state, then exit with the job's exit code. Pairs with `gpu run -d` for detached workflows: submit, capture the job ID, and wait deterministically instead of polling. ```bash gpu wait job_abc123 gpu wait job_abc123 --timeout 3600 gpu wait job_abc123 --json ``` Exits with the job's own exit code on completion, `12` if the job is unknown, and `14` on timeout. With `--json`, prints a final `{"job_id", "state", "exit_code"}` object. ## gpu cp Copy files to or from the remote workspace. ```bash gpu cp model.pt gpu:/workspace/ gpu cp gpu:/workspace/results/ ./results gpu cp -r ./data gpu:/workspace/data/ ``` Use the `gpu:` prefix, or the shorthand `:` prefix, for the remote side. ## gpu transfer Inspect the durable transfer receipts the local daemon retains for `gpu cp`. ```bash gpu transfer list gpu transfer status gpu transfer status --remote gpu transfer cleanup ``` `gpu cp` prints a transfer ID. `list` shows receipts newest first, `status` reports one of them, and `cleanup` removes a retained hidden partial without touching the final destination. `--remote` queries the partial on its exact pod and volume instead of reading the local receipt. Every subcommand takes `--json`. ## gpu login Authenticate with GPU CLI in your browser. Optional: `gpu login` adds a free GPU CLI account (portal identity and owned-node/fleet features). It is not required to connect a provider, rent GPUs, or run jobs. GPU CLI is free forever, no account required. Bring your own GPU or a provider API key. You pay the provider directly at their rates, zero markup. ```bash gpu login ``` | Flag | Description | | --------------------- | ----------------------------------- | | `--timeout ` | Browser auth timeout (default: 300) | ## gpu logout Remove the stored browser session. ```bash gpu logout ``` | Flag | Description | | -------------------- | ----------------- | | `--yes, -y, --force` | Skip confirmation | ## gpu auth Manage provider and model-hub credentials. Connecting a provider does not require `gpu login` first. ### auth `` Connect a cloud provider by name. Enter the API key when prompted, and an SSH key for pod access is generated automatically. ```bash gpu auth runpod gpu auth vast gpu auth thunder gpu auth ionet ``` You can also skip the prompt by exporting the provider API key, which GPU CLI picks up automatically (`RUNPOD_API_KEY`, `VAST_API_KEY`, `THUNDER_API_KEY`, or `IONET_API_KEY`; the `GPU_`-prefixed form wins if both are set). ### auth login Authenticate with your cloud provider profile. ```bash gpu auth login gpu auth login --profile dev gpu auth login --generate-ssh-keys ``` ### auth logout Remove provider credentials. ```bash gpu auth logout ``` ### auth status Show current auth state. ```bash gpu auth status ``` ### auth add Add HuggingFace or Civitai credentials for model downloads. ```bash gpu auth add hf gpu auth add civitai --token ``` ### auth remove Remove model-hub credentials. ```bash gpu auth remove hf ``` ### auth hubs List configured model-hub credentials. ```bash gpu auth hubs ``` ## gpu init Create a `gpu.jsonc` file for the current project. ```bash gpu init ``` | Flag | Description | | ---------------------------------- | ------------------------------- | | `--gpu-type ` | Default GPU type | | `--max-price ` | Maximum hourly price | | `--profile ` | Profile to use | | `--encryption` / `--no-encryption` | Toggle volume encryption | | `--force, -f` | Reinitialize an existing config | ## gpu prime Print gpu-cli conventions for a coding agent's context. Emits the project's agent guidance (use `uv` not `pip`, forward secrets via `--env`, `gpu run -p` not raw SSH) plus a compact summary of this project's config. Intended for a Claude Code SessionStart/PreCompact hook (installed by `gpu init`) so the conventions stay in context across compaction. Override the output with a `.gpu/PRIME.md` file. ```bash gpu prime ``` | Flag | Description | | ------------ | ------------------------------------------------------------------------------------- | | `--defaults` | Print the built-in conventions only, ignoring `.gpu/PRIME.md` and the project summary | ## gpu inventory Compare GPU pricing and availability across every cloud you're authenticated with. ```bash gpu inventory # Cross-provider matrix (default) gpu inventory --provider runpod # Detailed view for one provider gpu inventory --gpu-type H100 --min-vram 80 gpu inventory --available # Only in-stock GPUs gpu inventory --show-datacenters # Show DC under each cell gpu inventory --show-unmapped # Include "Unknown GPU" listings gpu inventory --json # Structured output for scripts ``` ### Cross-provider matrix (default) Without `--provider`, `gpu inventory` queries every authenticated cloud (RunPod, Vast.ai, Thunder Compute, io.net) in parallel and renders a comparison matrix. Rows are canonical GPU types; columns are providers; cells show price + stock indicator. ``` GPU VRAM RunPod Vast.ai io.net ───────────────────────────────────────────────────────────────────── NVIDIA H100 80GB HBM3 80GB $ 2.99 ███ $ 1.87 ██░ $ 1.85 ██░ * NVIDIA H100 PCIe 80GB $ 2.39 █░░ ── ─ ── ─ NVIDIA RTX 4090 24GB $ 0.69 ███ $ 0.45 ███ ◆ $ 0.60 ██░ * = best price in row ◆ = best price + best stock ── = not offered ``` A footer summary highlights the winner across all rows: most availability, lowest average $/hr, and the intersection (or `split` when no single provider wins both). ### Single-provider mode Pass `--provider ` (`runpod`, `vastai`, `thunder`, `ionet`) for the original detailed table, with every offer, datacenter, and stock indicator for just that cloud. The flat JSON shape is preserved here for backward compatibility with existing scripts. ### Filters | Flag | Effect | | --------------------- | -------------------------------------------------------------------------------- | | `--available` / `-a` | Only show GPUs with stock | | `--min-vram ` | Minimum VRAM | | `--max-price ` | Maximum hourly price | | `--region ` | Filter by datacenter region | | `--gpu-type ` | Fuzzy match on GPU name | | `--cloud-type ` | RunPod-specific: `secure`, `community`, `all` | | `--show-datacenters` | Append the winning datacenter under each cell | | `--show-unmapped` | Include rows where the provider couldn't identify the GPU model (mainly Vast.ai) | ### Authentication The matrix only includes providers you've authenticated with. Run `gpu auth status` to see which are configured, and `gpu auth ` to add one. Providers that error during the fetch (rate limit, bad key, network) render as an `ERR` column with the message in the footer. Other providers still surface. ### JSON output `--json` emits a structured object designed for scripts: ```json { "providers": ["runpod", "vastai", "ionet"], "rows": [ { "canonical_type": "h100_sxm", "display_name": "NVIDIA H100 80GB HBM3", "vram_gb": 80, "tier": "Flagship", "cells": { "runpod": { "price_per_hour": 2.99, "stock_level": "high", "datacenter_id": "us-ca", ... }, "vastai": { "price_per_hour": 1.87, "stock_level": "medium", "datacenter_id": "us-west", ... } }, "best_price_provider": "vastai", "best_stock_provider": "runpod" } ], "summary": { "most_availability": "runpod", "lowest_average_price": "vastai", "best_overall": null }, "errors": {}, "filters": { "min_vram": null, ... } } ``` When `--provider ` is set, `--json` returns the legacy flat array of GPU choices instead; the matrix shape is opt-out. ## gpu enroll Register this Linux/WSL machine as a local-fleet beta node. ```bash gpu fleet pair-node --name @james-5090 # then run the printed command on the GPU host: gpu enroll --auth-key=tskey-... --name @james-5090 ``` Local Fleet is a beta feature. Keep the trusted controller and every GPU host on the current GPU CLI release while this flow stabilizes. `gpu enroll` is intentionally target-side: run it inside the Linux/WSL environment that owns the GPU. The portal never SSHes into your machine. Use the full command printed by `gpu fleet pair-node`; it includes pairing metadata that lets the node pin your fleet root locally. After enrollment, the node uses its own credentials, portal JWT rotation, relay control, and WebRTC data channels for local fleet jobs. | Flag | Description | | -------------------- | -------------------------------------------------------------------------------- | | `--auth-key ` | One-time enrollment key printed by `gpu fleet pair-node` | | `--portal-url ` | Portal URL override for development or staging | | `--relay-url ` | Relay WebSocket control URL override | | `--name ` | Fleet handle for this node, with or without leading `@`; alias for `--node-name` | If the portal shows a node as needing pairing, it registered without a controller-signed trust binding. Run `gpu fleet pair-node --name @` from a trusted controller, then run the printed `gpu enroll` command on the GPU host. ## gpu node Manage beta nodes registered to your local fleet. ```bash gpu node retire @james-5090 gpu node retire node-abc123def456 --no-wait ``` `retire` revokes the portal-side node record. The agent treats a 401 heartbeat as a revocation signal and exits on its next heartbeat cycle. | Subcommand | Description | | ----------------- | ------------------------------------------------- | | `retire ` | Revoke a node by `@name` or literal `node-...` id | ## gpu fleet Manage local fleet beta trust and controller pairing. ```bash gpu fleet init gpu fleet request-access --device-name mbp gpu fleet approve-device ctrl_abc123 gpu fleet pair-node --name @james-5090 ``` Browser sessions can store pending requests, but approval is signed by a trusted local controller key. The portal cannot mint a controller grant on its own. | Subcommand | Description | | ------------------------- | -------------------------------------------------------------- | | `init` | Create the fleet root and approve this machine as a controller | | `request-access` | Request controller access from another machine | | `approve-device ` | Approve a pending controller request locally | | `pair-node --name ` | Create a pairing session and enrollment token for `@` | ## gpu placement Explain how the cross-provider placement decider would rank candidates for your project, without creating a pod. ```bash gpu placement explain # Human table, current project config gpu placement explain --json # Machine-readable output gpu placement explain --providers runpod,vastai # Limit to an allow-list gpu placement explain --exclude-provider ionet # Repeatable exclusion gpu placement explain --min-vram 40 --max-price 2.50 # Extra hard filters gpu placement explain --gpu-type H100 --gpu-type A100 # GPU-type filter (repeatable) ``` Read-only diagnostic for `provider = "auto"` / `providers = [...]` configs. The decider runs against live inventory plus the project's deployment footprint (volume-affinity, cache-affinity, per-provider session count) and surfaces both the ranked candidate list and any hard-filter rejections. ### Human output A ranked table with one row per `(provider, gpu, datacenter)` candidate: ``` Rank Provider GPU DC $/hr Stock Score Reasons ────────────────────────────────────────────────────────────────────────────────────── 1 vastai NVIDIA H100 80GB HBM3 us-west 1.87 ██░ 0.812 price-win, stock-boost 2 runpod NVIDIA H100 80GB HBM3 us-ca 2.99 ███ 0.741 stock-boost 3 ionet NVIDIA H100 PCIe sfo-1 1.85 ██░ 0.698 price-win Rejections (hard filter): - runpod / NVIDIA A100: volume_locked (volume datacenter us-ca, candidate in us-east) - ionet / NVIDIA L40S: price_cap (2.89 > 2.50 max_price) ``` ### Flags | Flag | Effect | | ---------------------------------- | ------------------------------------------------------------------------------------------------ | | `--providers ` | Ordered allow-list; empty = all authenticated | | `--exclude-provider ` / `-x` | Exclude a provider (repeatable) | | `--gpu-type ` / `-g` | Filter to these GPU types (repeatable) | | `--min-vram ` | Hard VRAM floor | | `--max-price ` | Hard price ceiling per hour | | `--json` | Machine output: `{ candidates: [...], rejections: [...], inventory_fetched_at_unix_ms: number }` | ### When the decider runs for real `gpu placement explain` is purely diagnostic. The same decider dispatches automatically during `gpu start` / `gpu run` whenever you haven't pinned a specific provider, which is the default. Pin a provider (e.g. `provider = "runpod"`) to bypass the decider. See [`crates/gpu/docs/providers/placement.md`](https://github.com/gpu-cli/platform/blob/main/crates/gpu/docs/providers/placement.md) for the full scoring model and how to tune `PlacementWeights`. ## gpu status Show project status, active pods, recent jobs, and cost information. ```bash gpu status gpu status --json ``` ## gpu dashboard Open the TUI dashboard for pods and jobs. ```bash gpu dashboard ``` Keybindings: `j`/`k` to move, `Tab` to switch panels, `Enter` to expand, `a` to attach, `c` to cancel, `s` to stop, `e` for events, `?` for help, `q` to quit. ## gpu logs Stream or inspect unified logs for jobs, sync events, hooks, and agent output. ```bash gpu logs gpu logs --job job_abc123 --tail 50 gpu logs --follow --type lifecycle gpu logs --json ``` ## gpu last Render the most recent run from the run-history index (mesh plane). With `--failed`, shows the most recent run that failed, failure-first (kind, cause, attempts, last node, traceback ref). ```bash gpu last # newest run summary gpu last --failed # newest failed run, failure detail ``` | Flag | Description | | ---------- | --------------------------------------------------- | | `--failed` | Show the most recent failed run with failure detail | | `--json` | Output JSON | ## gpu wait Block until a job reaches a terminal state, then exit with the job's own exit code. Pairs with `gpu run -d`: submit detached, then wait on the printed job ID instead of polling logs. ```bash gpu wait job_abc123 gpu wait job_abc123 --timeout 3600 gpu wait job_abc123 --json ``` | Flag | Description | | ------------------ | ----------------------------------------------------------------------------- | | `--timeout ` | Give up after this many seconds (exit code 14); waits indefinitely without it | | `--json` | Emit the final state as JSON: `{"job_id", "state", "exit_code"}` | Exit codes: the job's exit code on completion, `12` when the job is unknown, `13` when the job exists but its state can no longer be followed, `14` on `--timeout` expiry. ## gpu rent Rent GPU capacity through the mesh rentals resource — a thin client over the daemon's `/v1/rentals` surface: list offers, create a rental, inspect status, release. A freshly-ready rental enrolls as a node and starts matching queued constraints. ```bash gpu rent offers --constraint 'vram>=48' gpu rent create of-123 --keep-alive 30 --max-spend 12.50 gpu rent list gpu rent status r-01 gpu rent release r-01 ``` | Subcommand | Description | | --------------------- | --------------------------------------------------------- | | `offers` | List available rental offers (filter with `--constraint`) | | `create ` | Create a rental (`--keep-alive`, `--max-spend`) | | `list` | List active rentals | | `status ` | Inspect a rental's status | | `release ` | Release a rental | ## gpu stop Stop the active pod immediately. ```bash gpu stop gpu stop pod_abc123 --no-sync ``` | Flag | Description | | -------------------- | ---------------------- | | `[POD_ID]` | Optional pod ID | | `--yes, -y, --force` | Skip confirmation | | `--no-sync` | Skip final output sync | | `--json` | Output JSON | ## gpu use Run a template directly or resume a template session. ```bash gpu use ollama gpu use vllm gpu use owner/repo@v1.0.0 gpu use ``` ### Flags | Flag | Description | | --------------------- | ------------------------------------ | | `--name ` | Override the session or project name | | `--yes` | Skip interactive prompts | | `--dry-run` | Show what would be created | | `--input ` | Provide template input values | See [LLM Inference](/docs/llm) for the built-in Ollama, vLLM, and llama.cpp flows. ## gpu llm Launch the routed LLM workflow for Ollama, vLLM, or llama.cpp, with either local proxy registration or hosted publish. ```bash gpu llm run gpu llm run --ollama --model deepseek-r1:8b -y gpu llm run --vllm --url meta-llama/Llama-3.1-8B-Instruct -y gpu llm run --vllm --model Qwen/Qwen2.5-0.5B-Instruct --publish hosted --name staging-qwen -y gpu llm info deepseek-r1:70b gpu llm info --url meta-llama/Llama-3.1-8B-Instruct --json ``` Use [LLM Inference](/docs/llm) for setup, port layout, and wake-on-request routing behavior. ## gpu comfyui Run ComfyUI workflows from the curated workflow catalog. ```bash gpu comfyui list gpu comfyui info flux_schnell gpu comfyui validate flux_schnell --gpu-type "RTX 4090" gpu comfyui run flux_schnell --volume-id vol_abc123 gpu comfyui generate "a cat astronaut on mars" gpu comfyui stop --all ``` ## gpu notebook Run Marimo notebooks on GPU pods. ```bash gpu notebook gpu notebook train.py gpu notebook train.py --run gpu notebook --new analysis ``` ### Common flags | Flag | Description | | ------------------- | ----------------------------- | | `--run, -r` | Serve in read-only app mode | | `--new ` | Create a new notebook | | `--gpu-type ` | Override GPU selection | | `--volume-id ` | Use a specific network volume | | `--no-volume` | Use ephemeral storage | | `--yes, -y` | Skip confirmation | ## gpu volume Manage network volumes. ### volume list ```bash gpu volume list gpu volume list --detailed gpu volume list --json ``` ### volume create ```bash gpu volume create --name my-models --size 200 gpu volume create --datacenter US-TX-3 --set-global ``` ### volume delete ```bash gpu volume delete my-models --force ``` ### volume extend ```bash gpu volume extend my-models --size 300 ``` ### volume set-global ```bash gpu volume set-global my-models ``` ### volume status ```bash gpu volume status gpu volume status --volume my-models --json ``` ### volume migrate ```bash gpu volume migrate my-models --to US-OR-1 ``` ### volume sync ```bash gpu volume sync source-volume dest-volume gpu volume sync source-volume dest-volume --method rsync ``` ### volume cancel-migration ```bash gpu volume cancel-migration transfer_abc123 ``` ## gpu vault Manage encrypted vault storage for sensitive outputs. ### vault list ```bash gpu vault list gpu vault list --project my-project --json ``` ### vault export ```bash gpu vault export checkpoints/model.pt ./model.pt gpu vault export generated/image.png ~/Desktop/ --force ``` ### vault stats ```bash gpu vault stats gpu vault stats --project my-project --json ``` ## gpu proxy Manage the local proxy router for OpenAI-compatible model access. ### proxy start ```bash gpu proxy start ``` Starts the local proxy listeners. By default the LLM proxy listens on `127.0.0.1:4000` and the diffusion proxy listens on `127.0.0.1:4001`. ### proxy stop ```bash gpu proxy stop ``` Stops all proxy listeners and health checks. ### proxy status ```bash gpu proxy status gpu proxy status --json ``` Shows whether the proxy is running, the configured listen addresses, and registered model counts. ### proxy models ```bash gpu proxy models gpu proxy models --json ``` Lists registered models, backend counts, service types, and healthy backend counts. ### proxy register ```bash gpu proxy register --pod-id llm-ollama-qwen3-5-9b --model qwen3.5:9b --port 11434 --type ollama gpu proxy register --pod-id abc123 --model meta-llama/Llama-3-8B --port 8000 --type vllm ``` Manually registers a backend when you need to attach an existing service to the local proxy router. ### proxy deregister ```bash gpu proxy deregister --pod-id llm-ollama-qwen3-5-9b --model qwen3.5:9b gpu proxy deregister --pod-id abc123 --model meta-llama/Llama-3-8B ``` Removes a backend from the proxy router. ## gpu proxy hosted Manage the org-scoped hosted proxy for the active organization. ### proxy create ```bash gpu proxy create gpu proxy create --backend runpod gpu proxy create --backend vastai ``` Creates the org-scoped hosted proxy deployment. Use `--backend` to pin a provider-hosted backend when you do not want the portal-managed Railway path. ### proxy hosted status ```bash gpu proxy hosted status gpu proxy hosted status --json ``` Shows hosted deployment status, the public connection URL, and version drift details. ### proxy hosted connect-info ```bash gpu proxy hosted connect-info gpu proxy hosted connect-info --json ``` Prints the connection details for the active org's hosted proxy. ### proxy hosted upgrade ```bash gpu proxy hosted upgrade --yes ``` Requests a hosted-proxy upgrade when drift is detected. Railway remains portal-managed end to end, while provider-hosted backends reconcile the requested `gpu-cli` version through the running hosted daemon after initial provisioning. ### proxy hosted destroy ```bash gpu proxy hosted destroy ``` Destroys the org-scoped hosted proxy deployment. ### proxy keys ```bash gpu proxy keys create --name "alice" gpu proxy keys list gpu proxy keys revoke --name "alice" ``` Manage org-scoped hosted-proxy API keys for the active organization. ## gpu config Inspect or validate configuration. ```bash gpu config show gpu config validate gpu config schema gpu config get default_profile gpu config set updates.auto_update false ``` ## gpu template Browse official templates or clear the local template cache. ```bash gpu template list gpu template list --json gpu template clear-cache -y ``` ## gpu org Manage organizations, membership, sub-accounts, and service accounts. ```bash gpu org list gpu org create "My Team" gpu org delete my-team gpu org switch my-team gpu org invite alice@example.com --role admin gpu org service-account create --name ci gpu org service-account revoke sa_abc123 ``` See [Organizations & Service Accounts](/docs/organizations) for the current model, including headless automation. ## gpu serverless Deploy and manage RunPod Serverless endpoints. ```bash gpu serverless deploy gpu serverless list --json gpu serverless status gpu serverless delete gpu serverless warm --gpu gpu serverless logs gpu serverless template delete ``` ### serverless status ```bash gpu serverless status gpu serverless status --json ``` ### serverless logs ```bash gpu serverless logs gpu serverless logs --tail 100 gpu serverless logs --status error ``` `gpu serverless logs` currently points you to the RunPod dashboard rather than streaming or filtering logs inside the CLI, but these are still the public CLI flags. ### serverless warm ```bash gpu serverless warm --gpu gpu serverless warm --cpu gpu serverless warm --timeout 900 ``` ### Current behavior * `gpu serverless status` and `gpu serverless warm` should be treated as endpoint-ID-driven commands. * `gpu serverless delete` supports name lookup and interactive selection when you omit the endpoint. * `gpu serverless warm --gpu` is the supported warmup path today. * `gpu serverless warm --cpu`, deploy-time `--warm`, and deploy-time `--write-ids` are not wired through the current runtime. * `gpu serverless logs` currently points you to the RunPod dashboard rather than streaming filtered logs in the CLI. Use [Serverless Endpoints](/docs/serverless) for templates, config shape, and request examples. ## gpu start Start a new GPU pod explicitly instead of letting `gpu run` manage pod lifecycle for you. ```bash gpu start gpu start --gpu-type "NVIDIA RTX 6000 Ada" gpu start --min-vram 24 --max-price 1.50 ``` ### Key flags | Flag | Description | | ------------------------ | -------------------------------------- | | `--gpu-type ` | Pin a specific GPU type | | `--gpu-count ` | Request multiple GPUs | | `--max-price ` | Limit hourly spend during selection | | `--min-vram ` | Set a VRAM floor | | `--cloud-type ` | Choose `secure`, `community`, or `all` | | `--region ` | Restrict to a region or datacenter | | `--docker-image ` | Override the image | | `--force` | Skip reuse checks and create a new pod | ## gpu instances Inspect or terminate provider-side instances directly. ```bash gpu instances list gpu instances list --project my-project gpu instances show pod_abc123 gpu instances terminate pod_abc123 -y ``` ## gpu rename Rename an instance's memorable name. Works for both rentals and owned-fleet nodes; the leading `@` is optional, and running jobs are unaffected. The pod (or node) id is stable, only the human-readable name changes. ```bash gpu rename bold-falcon h100-bench # rename by bare names gpu rename @bold-falcon @h100-bench # leading @ is optional ``` ## gpu desktop Manage the desktop app. ```bash gpu desktop install gpu desktop install --channel beta gpu desktop uninstall -y ``` ## gpu update Update GPU CLI to the latest version or inspect update availability. ```bash gpu update gpu update --check gpu update --target-version 1.2.3 gpu update --dismiss ``` ## gpu changelog View release notes by version or version range. ```bash gpu changelog gpu changelog 0.8.0 gpu changelog --from 0.7.0 --to 0.8.0 ``` ## gpu daemon Manage the background daemon. ```bash gpu daemon status gpu daemon start gpu daemon restart gpu daemon logs --follow ``` ## gpu doctor Run a setup diagnostic. ```bash gpu doctor gpu doctor --json ``` ## gpu issue Submit an issue report with optional daemon logs. ```bash gpu issue gpu issue "sync not working" gpu issue --no-logs -y "bug report" ``` ## gpu agent-docs Print the agent-focused CLI reference to stdout. ```bash gpu agent-docs gpu agent-docs | head -50 ``` ## gpu support Open the GPU CLI community support link in your browser. ```bash gpu support ``` ## Global flags These flags work with all commands: | Flag | Description | | -------------------------- | ----------------------------------------------------------------- | | `-v, --verbose` | Increase logging verbosity (`-v`, `-vv`, `-vvv`) | | `-q, --quiet` | Minimal output | | `--progress-style