Cloud GPU Explorer
在 VS Code / Cursor 侧边栏统一浏览、管理并连接主流 GPU 云算力。当前支持 RunPod:列出 RUNNING Pod 与 Network Volumes,一键写入 SSH config,在本窗口或新窗口打开远程工作区,无需“外部应用打开”的安全确认。
后续计划支持 Vast.ai、Lambda Cloud、Paperspace 等,将分散的 GPU 云资源整合为一致的开发体验。
功能概览
- 侧边栏视图:Cloud GPU Explorer → Cloud GPUs,展示 Pinned(已固定 Volume)、All Running Pods、All Volumes。
- Explorer 内可选:设置
cloudGpuExplorer.shownInExplorer 为 true 时,在文件资源管理器侧边栏中也会显示 Cloud GPUs;独立侧边栏图标始终存在。
- Pinned:将常用 Volume 固定到顶部,快速查看该 Volume 下的实例、常用工作区,并支持一键启动/连接/停机。
- All Running Pods:列出当前账户下全部 RUNNING Pod;每个 Pod 行可展开,显示该 Volume 的常用工作区列表,点击某一工作区即用该路径连接。
- All Volumes:列出全部 Network Volumes,可对每个 Volume 设置默认 GPU、启动任务、常用工作区,并 Pin 到顶部或从该 Volume 创建 Pod。
- 连接与工作区:每个 Pod 行提供本窗口连接、新窗口连接(悬停提示带「选择或新建工作区」)。点击后若该 Volume 已配置常用工作区,会弹出列表供选择或输入新路径并加入列表;未配置则直接打开
/workspace。展开 Pod 后点击某一工作区子项,则直接用该路径连接。
- SSH config 管理:连接前自动写入 Host 配置(
# BEGIN RUNPOD … # END RUNPOD 块),不破坏已有配置。
依赖
安装
- 克隆本仓库,在扩展目录执行:
npm install,然后 npm run compile。
- 调试:VS Code / Cursor 中按 F5 或“运行扩展”。
- 本地安装:使用
vsce package 打包为 .vsix,在扩展视图中选择“从 VSIX 安装…”并选择生成的 .vsix。
配置
| 设置 |
说明 |
| API Key |
推荐:命令面板执行 Cloud GPU Explorer: Set API Key,输入 RunPod Console → Settings → API Keys 的 Key(存入安全存储)。也可在设置中填 runpod.apiKey(明文,不推荐)。 |
| runpod.sshUser |
SSH 用户名,默认 root。 |
| runpod.sshKeyPath |
私钥路径,留空使用默认(如 ~/.ssh/id_ed25519)。 |
| runpod.sshConfigPath |
SSH config 路径,留空使用 ~/.ssh/config。 |
| runpod.hostAliasPrefix |
写入的 Host 别名前缀,默认 runpod-。 |
| cloudGpuExplorer.shownInExplorer |
为 true 时同时在文件资源管理器侧边栏显示 Cloud GPUs;独立侧边栏始终显示。默认 false。 |
| runpod.volumeDefaultWorkspace |
按 Volume 设置的常用工作区路径列表(Volume ID → 路径数组)。在 Volume 行或 Pinned 行右键「管理常用工作区」可增删;连接 Pod 时可从该列表选择或新建。未配置或为空则打开 /workspace。 |
| runpod.volumeDefaultGpu |
按 Volume 设置创建 Pod 时默认 GPU 类型。 |
| runpod.volumeStartupTask |
按 Volume 设置创建 Pod 后通过 SSH 执行的启动命令(可选)。 |
使用
- 打开侧边栏 Cloud GPU Explorer 图标,进入 Cloud GPUs 视图。
- 点击标题栏 刷新 获取 Pod 与 Volume 列表;未配置 API Key 时会提示先设置。
- Pinned:已固定的 Volume 显示在顶部。有实例时可直接连接或展开查看常用工作区;无实例时可展开查看已配置的工作区(仅展示),或点击「启动」创建 Pod。
- All Running Pods:下列全部 RUNNING Pod。每个 Pod 一行,右侧 本窗口连接 / 新窗口连接(悬停会提示「选择或新建工作区」):
- 若该 Volume 配置了常用工作区,点击后会弹出列表供选择或输入新路径添加;
- 若该 Pod 行左侧有展开箭头,展开后可看到常用工作区子项,点击某一项即用该路径连接。
- All Volumes:下列全部 Network Volumes。每个 Volume 可右键 管理常用工作区、设置默认 GPU、设置启动任务、创建 Pod 并连接、固定到 Pinned 等。展开 Volume 可看到挂载该 Volume 的 Pod,行为与 All Running Pods 中的 Pod 行一致。
- 无可用 Pod 时会出现“No available pod…”,点击可打开 RunPod 控制台创建实例。
连接过程由扩展在 IDE 内调用 Remote-SSH,不会弹出“外部应用要打开…”的安全对话框。
技术说明
- RunPod API:
GET https://rest.runpod.io/v1/pods 与 Volumes 接口,筛选 desiredStatus === RUNNING;使用 publicIp 与 portMappings["22"] 作为 SSH 地址与端口。
- 连接方式:通过
vscode.commands.executeCommand('vscode.openFolder', remoteUri, { forceNewWindow }) 在当前或新窗口打开指定远程路径,不经过 openExternal(vscode://...)。
- SSH config:仅维护
# BEGIN RUNPOD / # END RUNPOD 块,其余配置不动。
故障排查
| 现象 |
处理 |
| “请先配置 RunPod API Key” |
执行 Cloud GPU Explorer: Set API Key 或填写 runpod.apiKey。 |
| 列表为空 |
确认 RunPod 上有 RUNNING Pod;点标题栏刷新。 |
| 写入 SSH config 失败 |
检查 runpod.sshConfigPath 对应路径是否有写权限、磁盘是否满。 |
| 连接无反应 |
确认已安装 Remote - SSH 扩展。 |
更多实现与规划见 TECHSTACK.md。
| |