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

# model

Manage models in the Model Repo, including adding, uploading, listing, and removing models.

```bash theme={null}
runpodctl model <subcommand> [flags]
```

## Subcommands

### Add a model

Register a new model with the Model Repo:

```bash theme={null}
runpodctl model add --name "my-model"
```

To upload model files from a local directory:

```bash theme={null}
runpodctl model add --name "my-model" --model-path ./model-files
```

#### Add flags

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

<ResponseField name="--owner" type="string">
  Model owner namespace (user or team owner ID). Use this to add models to a team account.
</ResponseField>

<ResponseField name="--model-status" type="string">
  Initial model status.
</ResponseField>

<ResponseField name="--credential-type" type="string">
  Credential type (if required for model access).
</ResponseField>

<ResponseField name="--credential-reference" type="string">
  Credential reference (if required for model access).
</ResponseField>

<ResponseField name="--model-path" type="string">
  Directory containing model files to upload. When specified, all files in the directory are uploaded to the Model Repo.
</ResponseField>

<ResponseField name="--create-upload" type="bool">
  Create an upload session without uploading files. Use this to get upload URLs for manual file uploads.
</ResponseField>

<ResponseField name="--file-name" type="string">
  File name for single-file upload.
</ResponseField>

<ResponseField name="--file-size" type="string">
  File size in bytes for single-file upload.
</ResponseField>

<ResponseField name="--part-size" type="string">
  Multipart upload part size in bytes.
</ResponseField>

<ResponseField name="--content-type" type="string">
  Content type for the upload.
</ResponseField>

<ResponseField name="--graphql-timeout" type="duration">
  GraphQL request timeout. Defaults to 30 minutes for model upload operations.
</ResponseField>

### List models

List models in your account:

```bash theme={null}
runpodctl model list
```

Filter by provider or name:

```bash theme={null}
runpodctl model list --provider huggingface
runpodctl model list --name "llama"
```

#### List flags

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

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

### Remove a model

Remove a model from the Model Repo:

```bash theme={null}
runpodctl model remove <model-id>
```

You can specify the model by ID or name:

```bash theme={null}
runpodctl model remove my-model
```

<Warning>
  Removing a model permanently deletes it and all associated versions from the Model Repo. This action cannot be undone.
</Warning>

## Environment variables

<ResponseField name="RUNPOD_GRAPHQL_URL" type="string">
  Override the GraphQL API endpoint URL. Defaults to `https://api.runpod.io/graphql`.
</ResponseField>

## Using model version hashes

To create a Serverless endpoint that uses a model from the Model Repo, reference the model by its version hash:

```bash theme={null}
runpodctl serverless create --template-id "tpl_abc123" --name "my-endpoint" \
  --model-reference "abc123def456"
```

Run `runpodctl model list` to find the version hash for your model.

## Related commands

* [`runpodctl serverless create`](/runpodctl/reference/runpodctl-serverless)
* [`runpodctl hub`](/runpodctl/reference/runpodctl-hub)
