RunPod pod management

TotalClaw 作者 andrewharp v1.0.1

管理 RunPod GPU 云实例 - 通过 SSH 和 API 创建、启动、停止、连接到 Pod。在使用 RunPod 基础设施、GPU 实例或需要 SSH 访问远程 GPU 计算机时使用。处理 Pod 生命周期、SSH 代理连接、文件系统安装和 API 查询。需要 runpodctl(brew install runpod/runpodctl/runpodctl)。

源码 ↗

安装 / 下载方式

TotalClaw CLI推荐
totalclaw skills install shop:totalclaw:andrewharp~andrewharp-runpod
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Aandrewharp~andrewharp-runpod/file -o andrewharp-runpod.md
Git 仓库获取源码
git clone https://github.com/openclaw/skills/commit/64fb57d77824cf2f8663083df1d8d61b98b26b06
## 概述(中文)

管理 RunPod GPU 云实例 - 通过 SSH 和 API 创建、启动、停止、连接到 Pod。在使用 RunPod 基础设施、GPU 实例或需要 SSH 访问远程 GPU 计算机时使用。处理 Pod 生命周期、SSH 代理连接、文件系统安装和 API 查询。需要 runpodctl(brew install runpod/runpodctl/runpodctl)。

## 原文

# RunPod Skill

Manage RunPod GPU cloud instances, SSH connections, and filesystem access.

## Prerequisites

```bash
brew install runpod/runpodctl/runpodctl
runpodctl config --apiKey "your-api-key"
```

**SSH Key:** runpodctl manages SSH keys in `~/.runpod/ssh/`:

```bash
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:
```bash
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

```bash
runpodctl get pod                    # List pods
runpodctl get pod <id>               # Get pod details
runpodctl start pod <id>             # Start pod
runpodctl stop pod <id>              # Stop pod
runpodctl ssh connect <id>           # Get SSH command
runpodctl send <file>                # Send file to pod
runpodctl receive <code>             # Receive file from pod
```

## Common Operations

### Create Pod

```bash
# Without volume
runpodctl create pod --name "my-pod" --gpuType "NVIDIA GeForce RTX 4090" --imageName "runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404"

# With volume (100GB at /workspace)
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

```bash
# Get SSH command
runpodctl ssh connect <pod_id>

# Connect directly (copy command from above)
ssh -p <port> root@<ip> -i ~/.ssh/runpod_key
```

### Mount Pod Filesystem (SSHFS)

```bash
./scripts/mount_pod.sh <pod_id> [base_dir]
```

Mounts pod to `~/pods/<pod_id>` by default.

**Access files:**
```bash
ls ~/pods/<pod_id>/
cat ~/pods/<pod_id>/workspace/my-project/train.py
```

**Unmount:**
```bash
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