> ## Documentation Index
> Fetch the complete documentation index at: https://runpod-b18f5ded-promptless-runpodctl-model-commands.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 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 theme={null}
  runpodctl model <subcommand> [flags]
  ```
</RequestExample>

## Subcommands

### Add a model

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

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

#### 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="--wait-for-hash" type="bool" default="false">
  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">
  Maximum time to wait when `--wait-for-hash` is set. Set to `0` to wait indefinitely.
</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 theme={null}
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 theme={null}
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 theme={null}
runpodctl model remove --name "my-model" --owner "my-team" --version "<version-uuid>"
```

#### Remove flags

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

<ResponseField name="--owner" type="string">
  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)
