| name | runpod |
| description | Manage RunPod GPU cloud instances - create, start, stop, connect to pods via SSH and API. Use when working with RunPod infrastructure, GPU instances, or need SSH access to remote GPU machines. Handles pod lifecycle, SSH proxy connections, filesystem mounting, and API queries. Requires runpodctl (brew install runpod/runpodctl/runpodctl). |
RunPod Skill
Manage RunPod GPU cloud instances, SSH connections, and filesystem access.
Prerequisites
brew install runpod/runpodctl/runpodctl
runpodctl config --apiKey "your-api-key"
SSH Key: runpodctl manages SSH keys in ~/.runpod/ssh/:
runpodctl ssh add-key
View and manage keys at: https://console.runpod.io/user/settings
Mount script configuration:
The mount script checks ~/.ssh/runpod_key first, then falls back to runpodctl's default key. Override with:
export RUNPOD_SSH_KEY="$HOME/.runpod/ssh/RunPod-Key"
Host keys are stored separately in ~/.runpod/ssh/known_hosts (isolated from your main SSH config). Uses StrictHostKeyChecking=accept-new to verify hosts on reconnect while allowing new RunPod instances.
Quick Reference
runpodctl get pod
runpodctl get pod <id>
runpodctl start pod <id>
runpodctl stop pod <id>
runpodctl ssh connect <id>
runpodctl send <file>
runpodctl receive <code>
Common Operations
Create Pod
runpodctl create pod --name "my-pod" --gpuType "NVIDIA GeForce RTX 4090" --imageName "runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404"
runpodctl create pod --name "my-pod" --gpuType "NVIDIA GeForce RTX 4090" --imageName "runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404" --volumeSize 100 --volumePath "/workspace"
Important: When using a volume (--volumeSize), always specify --volumePath too. Without it:
error creating container: ... invalid mount config for type "volume": field Target must not be empty
SSH to Pod
runpodctl ssh connect <pod_id>
ssh -p <port> root@<ip> -i ~/.ssh/runpod_key
Mount Pod Filesystem (SSHFS)
./scripts/mount_pod.sh <pod_id> [base_dir]
Mounts pod to ~/pods/<pod_id> by default.
Access files:
ls ~/pods/<pod_id>/
cat ~/pods/<pod_id>/workspace/my-project/train.py
Unmount:
fusermount -u ~/pods/<pod_id>
Helper Script
| Script | Purpose |
|---|
mount_pod.sh | Mount pod filesystem via SSHFS (no runpodctl equivalent) |
Web Service Access
Proxy URLs:
https://<pod_id>-<port>.proxy.runpod.net
Common ports:
- 8188: ComfyUI
- 7860: Gradio
- 8888: Jupyter
- 8080: Dev tools