Skip to content

docs: Document runpodctl model commands, Hugging Face mirroring, and config environment variables - #710

Open
promptless[bot] wants to merge 3 commits into
mainfrom
promptless/runpodctl-model-commands
Open

docs: Document runpodctl model commands, Hugging Face mirroring, and config environment variables#710
promptless[bot] wants to merge 3 commits into
mainfrom
promptless/runpodctl-model-commands

Conversation

@promptless

@promptless promptless Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Open this suggestion in Promptless to view citations and reasoning process

Adds a runpodctl model reference page covering the model repository commands (add, list, remove), including the --wait-for-hash, --hash-timeout, and -v/--verbose flags on model add and the mutually exclusive --hash/--version version-removal flags on model remove introduced in runpodctl PR #302. Adds model to the CLI overview command groups table and registers the page in navigation. Also documents the RUNPOD_API_KEY, RUNPOD_GRAPHQL_URL, and RUNPOD_API_URL environment variables on the config reference page, which now reliably override config file values.

Also documents the new --huggingface-model flag on runpodctl model add (runpodctl PR #320, STO-330), which mirrors an existing Hugging Face model into the Runpod model repository server-side. The reference page now explains the source (--huggingface-model, in owner/repo form) versus destination (--name) semantics, that --owner is optional when mirroring, and that mirroring cannot be combined with the local-upload flags.

Trigger Events


Tip: Add more repositories in your Configuration to keep multiple doc sites in sync 📚

promptless Bot added 2 commits July 10, 2026 21:38
Document the previously-undocumented runpodctl model command family
(add, list, remove), including the new --wait-for-hash/-v flags on
model add and the --hash/--version version-removal flags on model
remove from runpodctl PR #302. Add model to the command groups table
and register the new reference page in navigation.
Add the --hash-timeout flag to the model add reference and document the
RUNPOD_API_KEY, RUNPOD_GRAPHQL_URL, and RUNPOD_API_URL environment
variables (which override config file values) introduced in
runpodctl PR #302.
Directory containing the model files to upload.
</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

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

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


## Environment variables

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

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

@mintlify

mintlify Bot commented Jul 14, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
runpod-docs 🟢 Ready View Preview Jul 14, 2026, 1:25 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@mintlify

mintlify Bot commented Jul 14, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
runpod-docs 🟡 Building Jul 14, 2026, 1:24 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Add coverage for the --huggingface-model flag (runpodctl PR #320, STO-330)
that mirrors a Hugging Face model into the Runpod model repository server-side,
including source-vs-destination semantics and mutual exclusivity with the
local-upload flags.
@promptless promptless Bot changed the title docs: Document runpodctl model commands and config environment variables docs: Document runpodctl model commands, Hugging Face mirroring, and config environment variables Jul 30, 2026

@jebenexer jebenexer left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Local review: checked out this branch against current main (post-#320 merge) — merges cleanly, no conflicts despite being a bit behind. Cross-verified every documented flag and env var against the actual source:

  • model add/model list/model remove flags match cmd/model/*.go exactly, including the --huggingface-model mirroring semantics from the now-merged runpodctl#320.
  • RUNPOD_API_KEY/RUNPOD_GRAPHQL_URL/RUNPOD_API_URL precedence verified against internal/configenv/configenv.go — all correct.
  • Links to runpodctl-serverless.mdx/runpodctl-config.mdx resolve. CI (Mintlify deploy/validation, tooltip imports) is clean.

No blockers. Left 2 minor comments (missing required annotations on --name/--owner, and an optional callout for the undocumented RUNPOD_INVOKE_URL). Approving — this is the accurate, current reference and should be the canonical runpodctl model doc (see #644, recommended for closure as a stale duplicate).

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.

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.

@promptless

promptless Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

Just a reminder: If you'd like me to act on any feedback you have via Github comments, just type @Promptless in your suggestion and I'll get right on it! (I won't show up in the user dropdown, but I'll process any request that has @Promptless in the comment body.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant