Model Repo is currently in beta 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 worker hosts when available, so cold starts are typically faster. In some cases a model may still need to be fetched from storage.
- 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.
Prerequisites
- Your email is feature-flagged for Model Repo access.
jqis installed for parsing JSON output.
Step 1: 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.Each upload under the same
MODEL_NAME creates a new version of that model, not a new model. Use a different name if you want a separate model entry.Step 2: Install runpodctl
Already have runpodctl installed? Update it first: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 3: Upload the model
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. The --env MODEL_NAME flag passes the full local path to the worker so your handler knows where to find the model files.You can target up to 3 GPU pools by passing a comma-separated list to
--gpu-ids. Runpod schedules workers on whichever pool has availability.What “pre-cached” means: When a worker starts, Runpod copies your model files from storage onto the worker host’s local disk before the container boots. This eliminates the external download on cold start. Files stay on disk for as long as the worker is running; if the worker is replaced, the next worker pre-caches the files again on startup.
Step 6: Verify the model is working
Send a test request to confirm the endpoint is live and the model is accessible. ReplaceENDPOINT_ID with the ID returned in the previous step:
RUNPOD_API_KEY is set correctly.
You can also send requests from the web UI if you prefer a graphical interface.