Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,7 @@
"runpodctl/reference/runpodctl-pod",
"runpodctl/reference/runpodctl-serverless",
"runpodctl/reference/runpodctl-template",
"runpodctl/reference/runpodctl-model",
"runpodctl/reference/runpodctl-hub",
"runpodctl/reference/runpodctl-network-volume",
"runpodctl/reference/runpodctl-registry",
Expand Down
1 change: 1 addition & 0 deletions runpodctl/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---

Check warning on line 1 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L1

Try to keep the SMOG grade (12.40) below 10.

Check warning on line 1 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L1

Try to keep the Gunning-Fog index (11.94) below 10.

Check warning on line 1 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L1

Try to keep the Flesch reading ease score (45.32) above 70.

Check warning on line 1 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L1

Try to keep the LIX score (44.95) below 35.

Check warning on line 1 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L1

Try to keep the Coleman–Liau Index grade (13.31) below 9.

Check warning on line 1 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L1

Try to keep the Flesch–Kincaid grade level (10.76) below 8.

Check warning on line 1 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L1

Try to keep the Automated Readability Index (11.11) below 8.
title: "Overview"
sidebarTitle: "Overview"
description: "Use Runpod CLI to manage Pods, Serverless endpoints, templates, and more from your local machine."

Check warning on line 4 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L4

Use 'command-line tool' instead of 'CLI'.
---

import { PodsTooltip, PodTooltip } from "/snippets/tooltips.jsx";

Runpod CLI is an [open source](https://github.com/runpod/runpodctl) command-line tool for managing your Runpod resources from your local machine. You can manage Pods, Serverless endpoints, templates, network volumes, and models, transfer files between your system and Runpod, diagnose issues, and view account information.

Check warning on line 9 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L9

Use 'command-line tool' instead of 'CLI'.

## Quick start

Expand All @@ -20,7 +20,7 @@
runpodctl pod list # List your Pods
```

## Install Runpod CLI locally

Check warning on line 23 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L23

'Install Runpod CLI locally' should use sentence-style capitalization.

Check warning on line 23 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L23

Use 'command-line tool' instead of 'CLI'.

Every <PodTooltip /> you deploy comes preinstalled with `runpodctl` and a Pod-scoped API key. You can also install it on your local machine to manage resources remotely.

Expand Down Expand Up @@ -145,7 +145,7 @@
runpodctl doctor
```

This command guides you through first-time setup, including API key configuration and SSH key setup.

Check warning on line 148 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L148

Use the Oxford comma in ', including API key configuration and SSH key setup.'.

Alternatively, you can manually configure your API key:

Expand All @@ -158,7 +158,7 @@
saved apiKey into config file: /Users/runpod/.runpod/config.toml
```

### Step 3: Verify installation

Check warning on line 161 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L161

'Step 3: Verify installation' should use sentence-style capitalization.

To verify that `runpodctl` installed successfully, run this command:

Expand All @@ -166,7 +166,7 @@
runpodctl version
```

You should see which version is installed:

Check warning on line 169 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L169

In general, use active voice instead of passive voice ('is installed').

```bash
runpodctl v2.0
Expand All @@ -174,13 +174,14 @@

## Command groups

Runpod CLI organizes commands into groups based on the resource type:

Check warning on line 177 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L177

Use 'command-line tool' instead of 'CLI'.

| Command | Alias | Description |
|---------|-------|-------------|
| `runpodctl pod` | | Manage Pods (create, list, start, stop, delete) |

Check warning on line 181 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L181

Use parentheses judiciously.
| `runpodctl serverless` | `sls` | Manage Serverless endpoints |
| `runpodctl template` | `tpl` | List, search, and manage templates |
| `runpodctl model` | | Manage models in the model repository (add, list, remove) |

Check warning on line 184 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L184

Use parentheses judiciously.
| `runpodctl hub` | | Browse and deploy from the Runpod Hub |
| `runpodctl network-volume` | `nv` | Manage network volumes |
| `runpodctl registry` | `reg` | Manage container registry authentications |
Expand All @@ -192,7 +193,7 @@

## Help and reference

Learn how to use Runpod CLI commands by browsing the CLI reference using the sidebar to the left, or by running the `help` command:

Check warning on line 196 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L196

Use 'command-line tool' instead of 'CLI'.

Check warning on line 196 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L196

Use 'command-line tool' instead of 'CLI'.

```bash
runpodctl help
Expand All @@ -211,6 +212,6 @@
runpodctl completion
```

This command auto-detects your shell and adds the appropriate source command to your shell configuration file (`~/.bashrc` or `~/.zshrc`). The command is idempotent—running it again skips installation if completion is already configured.

Check warning on line 215 in runpodctl/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/overview.mdx#L215

Use parentheses judiciously.

Restart your shell or source the configuration file for changes to take effect.
16 changes: 16 additions & 0 deletions runpodctl/reference/runpodctl-config.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---

Check warning on line 1 in runpodctl/reference/runpodctl-config.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-config.mdx#L1

Try to keep the Flesch–Kincaid grade level (8.43) below 8.

Check warning on line 1 in runpodctl/reference/runpodctl-config.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-config.mdx#L1

Try to keep the Coleman–Liau Index grade (10.64) below 9.

Check warning on line 1 in runpodctl/reference/runpodctl-config.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-config.mdx#L1

Try to keep the Flesch reading ease score (48.90) above 70.

Check warning on line 1 in runpodctl/reference/runpodctl-config.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-config.mdx#L1

Try to keep the Gunning-Fog index (11.53) below 10.

Check warning on line 1 in runpodctl/reference/runpodctl-config.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-config.mdx#L1

Try to keep the SMOG grade (10.86) below 10.
title: "config"
sidebarTitle: "config"
---

Configure the Runpod CLI with your API credentials and API URL to enable programmatic access to your Runpod resources.

Check warning on line 6 in runpodctl/reference/runpodctl-config.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-config.mdx#L6

Use 'command-line tool' instead of 'CLI'.

<RequestExample>
```bash Command
Expand All @@ -13,7 +13,7 @@

## Example

Configure the CLI with your API key:

Check warning on line 16 in runpodctl/reference/runpodctl-config.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-config.mdx#L16

Use 'command-line tool' instead of 'CLI'.

```bash
runpodctl config --apiKey "your-api-key-here"
Expand All @@ -35,6 +35,22 @@
The Runpod API endpoint URL. The default value should work for most users.
</ResponseField>

## Environment variables

You can also configure the CLI using environment variables. When set, these take precedence over the corresponding values in your config file.

Check warning on line 40 in runpodctl/reference/runpodctl-config.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-config.mdx#L40

Use 'command-line tool' instead of 'CLI'.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented the RUNPOD_API_KEY, RUNPOD_GRAPHQL_URL, and RUNPOD_API_URL environment variables and their precedence over config values, based on the new internal/configenv/configenv.go package: APIKeyEnvapiKey, GraphQLURLEnvapiUrl, RESTURLEnvrestApiUrl, with envOrConfig giving a non-empty env var priority over the config file.

Source: https://github.com/runpod/runpodctl/pull/302/files


<ResponseField name="RUNPOD_API_KEY" type="string">
Your Runpod API key. Overrides the `apiKey` value in your config file.
</ResponseField>

<ResponseField name="RUNPOD_GRAPHQL_URL" type="string">
The Runpod GraphQL API endpoint URL. Overrides the `apiUrl` value in your config file.
</ResponseField>

<ResponseField name="RUNPOD_API_URL" type="string">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified against internal/configenv/configenv.go on current mainRUNPOD_API_KEYapiKey, RUNPOD_GRAPHQL_URLapiUrl, RUNPOD_API_URLrestApiUrl all check out exactly as documented. One optional addition: there's also a fourth env var, RUNPOD_INVOKE_URL (overrides invokeUrl, used for invoking Serverless endpoints specifically rather than the control-plane API). Not a correctness issue since it's arguably out of scope here, just flagging in case you want full coverage on this page.

The Runpod REST API endpoint URL. Overrides the `restApiUrl` value in your config file.
</ResponseField>

## Related commands

- [`runpodctl doctor`](/runpodctl/reference/runpodctl-doctor)
Expand Down
151 changes: 151 additions & 0 deletions runpodctl/reference/runpodctl-model.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
---

Check warning on line 1 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L1

Try to keep the Flesch–Kincaid grade level (8.65) below 8.

Check warning on line 1 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L1

Try to keep the Coleman–Liau Index grade (9.70) below 9.

Check warning on line 1 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L1

Try to keep the Flesch reading ease score (57.86) above 70.

Check warning on line 1 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L1

Try to keep the SMOG grade (10.39) below 10.
title: "model"
sidebarTitle: "model"
---

Manage models in the Runpod model repository. Use these subcommands to upload model files, list your models, and remove models or individual model versions.

<RequestExample>
```bash Command
runpodctl model <subcommand> [flags]
```
</RequestExample>

## Subcommands

### Add a model

Add a model to the model repository. You can add a model in two ways: by uploading model files from your local machine, or by mirroring an existing Hugging Face model server-side.

To upload model files from your local machine, point `--model-path` at the directory that contains them:

```bash
runpodctl model add --name "my-model" --owner "my-team" --model-path ./model
```

When you upload from a directory in a terminal, `runpodctl` shows a progress bar with upload progress and estimated time remaining, then prints the total model size once the upload finishes.

If you reuse one local directory across model versions without this flag, a later upload can include a mix of old and new files. Add `--delete-my-model-files-after-upload` to remove exactly the files this run uploaded from `--model-path` once the model version hash is confirmed server-side. It never touches unrelated files, and it runs only on confirmed success, so a failed or timed-out upload leaves your files in place. This flag requires both `--model-path` and `--wait-for-hash`.

Check warning on line 28 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L28

In general, use active voice instead of passive voice ('is confirmed').

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented the new --delete-my-model-files-after-upload flag intro/example (PR #333, STO-446) on runpodctl model add: it removes exactly the files this run uploaded once the hash is confirmed server-side, never touches unrelated files, and only runs on confirmed success (a failed/timed-out upload leaves files in place). Source: runAddModel's post-hash-wait block at addModelToRepo.go#L354-365 only calls deleteVerifiedModelFiles after waitForUploadedModelHash returns without error; deleteVerifiedModelFiles (L504-525) iterates only over the modelFiles collected for this run.

Source: https://github.com/runpod/runpodctl/blob/069ac663b4ae3290f16ee60c3b0dada9c6b81ece/cmd/model/addModelToRepo.go#L354-L365


```bash
runpodctl model add --name "my-model" --owner "my-team" --model-path ./model --wait-for-hash --delete-my-model-files-after-upload
```

To mirror an existing Hugging Face model into the Runpod model repository, use `--huggingface-model` with the source model in `owner/repo` form. `--name` sets the destination model name in the Runpod repository, and `--owner` is optional when mirroring.

The transfer runs server-side, so there is no local upload session, file upload, or progress bar. Runpod creates the new model version right away and transfers the files from Hugging Face in the background.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: --name isn't marked required here, but the CLI enforces it via cobra.MarkFlagRequired("name") on model add. Similarly, in the "Remove a model" section below, --owner and --name are both mandatory at runtime (runRemoveModel errors with "both --owner and --name must be provided" if either is missing) but neither ResponseField has a required attribute. Worth adding required to these three so users don't have to discover it from a CLI error.

Mirroring cannot be combined with the local-upload flags (`--model-path`, `--create-upload`, `--file-name`, `--file-size`, `--part-size`, `--content-type`, and `--wait-for-hash`). Uploading and mirroring are two separate ways to add a model.

Check warning on line 38 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L38

Use parentheses judiciously.

Check warning on line 38 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L38

Use 'can't' instead of 'cannot'.

Check warning on line 38 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L38

In general, use active voice instead of passive voice ('be combined').

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented that --huggingface-model cannot be combined with the local-upload flags (--model-path, --create-upload, --file-name, --file-size, --part-size, --content-type, --wait-for-hash). Source: validateAddModelFlags() at addModelToRepo.go#L379-389, which returns the exact error "--huggingface-model cannot be combined with local upload flags" (L385) when any of those seven flags is set alongside isHuggingFaceMirror(). Also anchors the verbatim example at line 35 of the doc (runpodctl model add --name tiny-llm --huggingface-model arnir0/Tiny-LLM), matching the cobra Example field at addModelToRepo.go#L162-163 verbatim, including the destination/source comment.

Source: https://github.com/runpod/runpodctl/blob/babfc1cf8f14febf38d554e1c3ad23e43e81b7e3/cmd/model/addModelToRepo.go#L379-L389


```bash
runpodctl model add --name tiny-llm --huggingface-model arnir0/Tiny-LLM
```

#### Add flags

<ResponseField name="--name" type="string">
Model name.
</ResponseField>

<ResponseField name="--owner" type="string">
Model owner namespace (a user or team owner ID).
</ResponseField>

<ResponseField name="--model-path" type="string">
Directory containing the model files to upload.
</ResponseField>

<ResponseField name="--huggingface-model" type="string">

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented the new --huggingface-model flag on runpodctl model add (PR #320, STO-330) for mirroring a Hugging Face model into the Runpod model repository in owner/repo form. Source: flag registration with help text "hugging face model to mirror (owner/repo)" at addModelToRepo.go#L186; --name required via MarkFlagRequired at L179-180 and --owner registered with no required-flag call at L184, confirming --owner is optional when mirroring; isHuggingFaceMirror()/wantsUploadSession() at L202-213 show the mirror path skips the local upload session (no file upload/progress bar) since metadata's "server-side Hugging Face mirror" exception is called out in the code comment; the mirror success path returns immediately via printModelAddOutput at L302-304 with no progress bar. Covers prose at lines 18, 28, and 30 of the doc (server-side transfer, no local upload session/progress bar) but NOT the doc's specific "pending transfer state" wording, which is not backed by any status literal in this file (only ModelVersionStatusReady="READY" and ModelVersionStatusPodRemoved="POD_REMOVED" are defined in api/model.go) — flagged separately as needing softening.

Source: https://github.com/runpod/runpodctl/blob/babfc1cf8f14febf38d554e1c3ad23e43e81b7e3/cmd/model/addModelToRepo.go#L186

Hugging Face model to mirror into the Runpod model repository, in `owner/repo` form. Cannot be combined with the local-upload flags (`--model-path`, `--create-upload`, `--file-name`, `--file-size`, `--part-size`, `--content-type`, and `--wait-for-hash`).
</ResponseField>

<ResponseField name="--wait-for-hash" type="bool" default="false">

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented the new --wait-for-hash and -v, --verbose flags on runpodctl model add from PR #302's cmd/model/addModelToRepo.go (flag registration and the --wait-for-hash requires --model-path constraint), plus the progress bar and total-model-size output added in the same file.

Source: https://github.com/runpod/runpodctl/pull/302/files

Wait for uploaded model files to finish hashing before the command returns. Requires `--model-path`. When hashing completes, `runpodctl` prints a message confirming the model is ready to deploy along with its model URL.
</ResponseField>

<ResponseField name="--hash-timeout" type="duration" default="30m0s">

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented the new --hash-timeout duration flag on model add; its default of 30m0s and the "0 disables the timeout" behavior come from the flag registration and modelHashWaitTimeout = 30 * time.Minute in cmd/model/addModelToRepo.go.

Source: https://github.com/runpod/runpodctl/pull/302/files

Maximum time to wait when `--wait-for-hash` is set. Set to `0` to wait indefinitely.
</ResponseField>

<ResponseField name="--delete-my-model-files-after-upload" type="bool" default="false">

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented the --delete-my-model-files-after-upload flag definition (bool, default false; requires both --model-path and --wait-for-hash; deletes only this run's uploaded files including nested subdirectories after hash confirmation; no deletion on hash failure/timeout; non-zero exit naming the failing file on partial delete failure; deletedModelFiles/deletedModelFilesBytes added to JSON output only under --verbose/-v). Source: PR #333 (STO-446), validateAddModelFlags at addModelToRepo.go#L402-413 (validation before any upload), deleteVerifiedModelFiles at L504-525 (exact-files-only deletion, failure naming), and the verbose-gated output path at L367-371 (printCompactModelAddOutput when !addModelVerbose vs full modelAddOutput with DeletedModelFiles/DeletedModelFilesBytes fields, addModelAddOutput struct L111-120).

Source: https://github.com/runpod/runpodctl/blob/069ac663b4ae3290f16ee60c3b0dada9c6b81ece/cmd/model/addModelToRepo.go#L402-L413

Delete the uploaded `--model-path` files after the model version hash is confirmed server-side. Only the files this run uploaded are deleted, including nested subdirectories, and only after the hash is confirmed. If hash confirmation times out or fails, no files are deleted.

Requires both `--model-path` and `--wait-for-hash`. Both are validated before the upload begins, so the command fails immediately if either is missing.

If a specific file cannot be deleted, the command exits non-zero and names that file, so there is no silent partial success. A stderr confirmation line prints once at least one file has been deleted. The `deletedModelFiles` (count) and `deletedModelFilesBytes` (bytes) fields are added to the JSON output only when `--verbose`, `-v` is set.
</ResponseField>

<ResponseField name="--verbose, -v" type="bool" default="false">
Include the full upload details in the `--wait-for-hash` output. Without this flag, a compact summary is printed instead.
</ResponseField>

<Note>

`runpodctl model add` also accepts lower-level flags for configuring uploads directly, such as `--content-type`, `--file-name`, `--file-size`, `--part-size`, `--metadata`, and `--model-status`. Run `runpodctl model add --help` to see the complete list.

</Note>

### List models

List the models in your model repository:

```bash
runpodctl model list
```

#### List flags

<ResponseField name="--name" type="string">
Filter the results by model name.
</ResponseField>

<ResponseField name="--provider" type="string">
Filter the results by provider.
</ResponseField>

### Remove a model

Remove a model from the model repository:

```bash
runpodctl model remove --name "my-model" --owner "my-team"
```

To remove a single model version instead of the entire model, pass either `--hash` or `--version`. This marks that version as removed and leaves the rest of the model in place.

```bash
runpodctl model remove --name "my-model" --owner "my-team" --version "<version-uuid>"
```

<Warning>

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented that runpodctl model remove refuses to remove a model/version referenced by a Serverless endpoint (whole-model remove blocked if ANY version is referenced; --hash/--version remove blocked only for that exact version); reports the blocking endpoint(s); no override/force flag exists; a failed dependency check (e.g. API unreachable) also blocks removal. Source: PR #334 (STO-360), checkDependentEndpoints/dependentEndpointsError at removeModel.go#L38-52, L168-184; whole-model call site with hash="" at L242 vs version-specific call with target.Hash at L281; no --force flag registered in bindRemoveModelFlags (L219-224).

Source: https://github.com/runpod/runpodctl/blob/069ac663b4ae3290f16ee60c3b0dada9c6b81ece/cmd/model/removeModel.go#L168-L184


`runpodctl model remove` refuses to remove a model or version that a Serverless endpoint still references. Removing the whole model is refused if any version is referenced; removing a specific version with `--hash` or `--version` is refused only when that exact version is referenced. The command reports which endpoints block the removal, and nothing is deleted when a removal is refused.

There is no override or force flag. A model or version in active use cannot be removed until you detach or replace it on the referencing endpoint. If the dependency check cannot complete, for example when the API is unreachable, the removal is also refused, because Runpod treats an unverifiable dependency check as unsafe.

</Warning>

To clear a blocked removal, detach or replace the model on the referencing endpoint, then retry the removal. Detach the model with `runpodctl serverless update <endpoint-id> --clear-models`, or replace it with `runpodctl serverless update <endpoint-id> --model-reference <model-reference-url>`. See the [Update an endpoint](/runpodctl/reference/runpodctl-serverless#update-an-endpoint) section for details. If the referencing endpoint is a GPU endpoint, this update currently fails until the pending fix ships; see the [limitation on `--model-reference` and `--clear-models`](/runpodctl/reference/runpodctl-serverless#update-flags).

Check warning on line 128 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L128

Avoid time-based words like 'currently' in product documentation.

Check warning on line 128 in runpodctl/reference/runpodctl-model.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-model.mdx#L128

Use semicolons judiciously.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented the remediation path for a blocked removal: detach with runpodctl serverless update <endpoint-id> --clear-models or replace with --model-reference <new-url>, then retry. Source: PR #334 (STO-360), dependentEndpointsError.Error() at removeModel.go#L47-52, which emits this exact remediation text.

Source: https://github.com/runpod/runpodctl/blob/069ac663b4ae3290f16ee60c3b0dada9c6b81ece/cmd/model/removeModel.go#L47-L52


#### Remove flags

<ResponseField name="--name" type="string">
Model name.
</ResponseField>

<ResponseField name="--owner" type="string">

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented the new --hash and --version flags on runpodctl model remove from PR #302's cmd/model/removeModel.go, including the mutual-exclusivity check (only one of --hash or --version can be provided) and that a matching version is marked removed rather than deleting the whole model.

Source: https://github.com/runpod/runpodctl/pull/302/files

Model owner.
</ResponseField>

<ResponseField name="--hash" type="string">
Hash of the model version to remove. Cannot be combined with `--version`.
</ResponseField>

<ResponseField name="--version" type="string">
UUID of the model version to remove. Cannot be combined with `--hash`.
</ResponseField>

## Related commands

- [`runpodctl serverless`](/runpodctl/reference/runpodctl-serverless)
- [`runpodctl config`](/runpodctl/reference/runpodctl-config)
24 changes: 24 additions & 0 deletions runpodctl/reference/runpodctl-serverless.mdx

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Line 208)

Documented the new --model-reference (repeatable string, replaces existing model references) and --clear-models (bool, mutually exclusive with --model-reference) flags on runpodctl serverless update (PR #334, STO-360). Source: update.go#L43-45 flag vars, L55-56 registration, L62-64 mutual-exclusivity check (--clear-models and --model-reference are mutually exclusive); replace semantics confirmed by UpdateEndpointModels in internal/api/endpoints.go#L253-337 (full-replace saveEndpoint call with the new modelRefs).

Source: https://github.com/runpod/runpodctl/blob/069ac663b4ae3290f16ee60c3b0dada9c6b81ece/cmd/serverless/update.go#L43-L64

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---

Check warning on line 1 in runpodctl/reference/runpodctl-serverless.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-serverless.mdx#L1

Try to keep the Flesch reading ease score (54.89) above 70.

Check warning on line 1 in runpodctl/reference/runpodctl-serverless.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-serverless.mdx#L1

Try to keep the Coleman–Liau Index grade (11.69) below 9.

Check warning on line 1 in runpodctl/reference/runpodctl-serverless.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-serverless.mdx#L1

Try to keep the LIX score (39.97) below 35.
title: "serverless"
sidebarTitle: "serverless"
---
Expand Down Expand Up @@ -75,7 +75,7 @@
--env MAX_TOKENS=4096
```

When using `--hub-id`, GPU IDs and container disk size are automatically pulled from the Hub release config. You can override the GPU type with `--gpu-id`. Environment variables from the Hub release are included automatically, and you can override or add to them with `--env`.

Check warning on line 78 in runpodctl/reference/runpodctl-serverless.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runpod-b18f5ded) - vale-spellcheck

runpodctl/reference/runpodctl-serverless.mdx#L78

In general, use active voice instead of passive voice ('are included').

<Note>

Expand Down Expand Up @@ -165,6 +165,12 @@

```bash
runpodctl serverless update <endpoint-id> --workers-max 5

# Cache a model reference on the endpoint
runpodctl serverless update <endpoint-id> --model-reference https://huggingface.co/<owner>/<model>:<revision>

# Clear all model references from the endpoint
runpodctl serverless update <endpoint-id> --clear-models
```

#### Update flags
Expand Down Expand Up @@ -205,6 +211,24 @@
Execution timeout in seconds. Jobs that exceed this duration are terminated.
</ResponseField>

Attaching model references caches the referenced models on the endpoint so workers start faster and cost less. See [Model caching](/serverless/endpoints/model-caching) for when and why to cache models.

<ResponseField name="--model-reference" type="string">

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documented the known limitation that --model-reference/--clear-models currently work only for CPU (non-GPU) endpoints, and that using them on a GPU endpoint drops GPU config and fails (fix pending). This is called out explicitly in the PR #334 description as a known, separate, unfixed issue ("UpdateEndpointModels also drops GPU config ... saveEndpoint then fails with "gpuId(s) is required for a gpu endpoint" on any real GPU endpoint... still broken today for GPU endpoints created via serverless create --gpu-id"), consistent with internal/api/endpoints.go's Endpoint.GpuIDs being a single string field.

Source: runpod/runpodctl#334

Model reference URL to cache on the endpoint, in the same form used by `serverless create` (a Hugging Face reference like `https://huggingface.co/<owner>/<model>:<revision>`). Repeatable: use multiple `--model-reference` flags to cache several models. Replaces the endpoint's existing model references. Cannot be combined with `--clear-models`.
</ResponseField>

<ResponseField name="--clear-models" type="bool">
Remove all model references from the endpoint. Cannot be combined with `--model-reference`.
</ResponseField>

<Warning>

Updating an existing endpoint's model references with `--model-reference` or `--clear-models` currently works only on CPU (non-GPU) endpoints. On a GPU endpoint, this update cannot preserve the endpoint's GPU configuration, so it is rejected and the endpoint is left unchanged. A fix is pending.

This limitation applies only to the update path shown here. GPU endpoints can still attach model references when you create them with `serverless create --model-reference`, or through the console. See [Model caching](/serverless/endpoints/model-caching) for the caching flow that still works on GPU endpoints.

</Warning>

### Delete an endpoint

Delete an endpoint:
Expand Down
Loading