Skip to main content
Model Repo is currently in alpha and is available on Mac and Linux only. Windows support is coming soon.

Why use Model Repo

Model Repo lets you upload your own models to private storage on Runpod and attach them directly to Serverless endpoints. Key benefits:
  • Faster cold starts: Models are pre-cached on the worker host rather than downloaded at runtime.
  • No HuggingFace dependency: Your models are stored in Runpod’s infrastructure, so endpoints don’t require an outbound download on every cold start.
  • Private storage: Models are stored in your account and are not accessible to other users.

Manual testing

Prerequisites

  • Your email is feature-flagged for Model Repo access.
  • jq is installed for parsing JSON output.

Set environment variables

Export the following before running any commands. Make sure to set your actual API key — missing this is the most common source of auth errors later.
MODEL_NAME must be unique for each test run. If you reuse the same name, the upload creates a new version of the existing model rather than a new model.

Step 1: Install runpodctl

Option A: Install via Homebrew (recommended)
Option B: Build from source
If you build from source, the binary is at ./bin/runpodctl. Either run it with that path, or add ./bin to your PATH. The steps below use runpodctl — adjust accordingly.

Step 2: Upload the model

This outputs a JSON string listing all uploaded files.

Step 3: Wait for the model to be hashed

After upload, the model must be hashed by an asynchronous background process. This typically completes in a few minutes but can take up to 10–15 minutes. Poll until the hash field is non-null:
While hashing is in progress, the command returns null:
Once hashing is complete, it returns the hash value:

Step 4: Get your user ID and model hash


Step 5: Deploy a Serverless endpoint with the model attached

--model-reference is only supported with --hub-id and GPU endpoints. It is repeatable if you need to attach multiple models to the same endpoint.

Step 6: Verify the model is working

Send a test request to confirm the endpoint is live and the model is accessible. Replace ENDPOINT_ID with the ID returned in the previous step:
A successful response confirms the endpoint is running and the model is attached. If the request fails with an auth error, verify that RUNPOD_API_KEY is set correctly. If you prefer a graphical interface to curl, you can also send requests to the worker from the web UI.

Step 7: Clean up

Delete the endpoint after testing to stop accruing spend. Use the web UI or: