VPS 主机管理与基于 Skill 的客户端接入
Self Checks / 自检
I have searched for existing issues, including closed ones. 我已搜索过已有的 Issue,包括已关闭的。
Related App / 涉及应用
General / 通用
Problem or Motivation / 问题或动机
我希望能够在 CC Switch 中统一维护自己的 VPS 连接信息,并让本地的 Claude Code、Codex、OpenCode 等客户端发现这些服务器,通过系统 SSH 帮助完成日志查看、故障排查、项目部署等操作。
这些客户端本身已经具备终端命令执行能力,并不需要 CC Switch 重新实现一个 Agent。不过,目前主机信息和使用说明需要自行维护,并分别告知不同客户端。管理多台服务器或切换客户端时,容易出现以下问题:
- 需要重复说明有哪些服务器、各自的用途以及连接方式。
- 连接信息更新后,需要同步维护不同客户端中的说明。
- 缺少一个直观的入口,选择向哪些客户端提供哪些服务器的发现信息。
- 如果直接把连接信息写进提示词,容易产生重复、过期的信息,也不利于区分普通主机信息与认证凭据。
因此,希望 CC Switch 能提供一个轻量的 VPS 接入管理功能:CC Switch 负责维护主机信息和客户端接入,现有 Agent 继续负责理解用户需求并调用系统 SSH。
Proposed Solution / 建议方案
- 增加独立的 VPS 管理入口
用户可以:
- 添加、编辑和删除服务器。
- 设置名称、用途、地址、SSH 端口、用户名及本机认证引用。
- 显式测试 SSH 连接,查看认证失败、超时或主机指纹变化等结果。
- 勾选希望接入该服务器的客户端。
- 使用一个通用 Skill,而不是每台服务器一个 Skill
提供一个通用的 cc-switch-vps Skill,负责说明:
- 如何读取当前客户端可发现的主机目录。
- 如何根据名称和用途确定目标服务器。
- 如何使用系统 SSH 连接。
- 如何核对操作结果,并遵循客户端自身的授权机制。
具体主机信息保存在本机配置中,不写死在 Skill 正文里。新增或修改服务器时,更新主机目录即可,避免重复生成大量内容相同的 Skill。
- 为各客户端生成对应的主机目录
例如:
- 测试服务器接入 Claude Code、Codex 和 OpenCode。
- 生产服务器只向 Claude Code 提供发现入口。
各客户端安装的 Skill 入口指向对应的主机目录。主机目录从统一数据源生成,不需要用户分别维护,也不需要 Agent 猜测自己属于哪个客户端。
这里的“接入客户端”表示配置与发现范围,不是强制权限隔离:其他具有本机终端和 SSH 凭据访问能力的程序,仍可能自行连接服务器。
- 复用系统 SSH 和现有客户端能力
首版不要求安装 MCP 服务或远端常驻程序,也不在 CC Switch 中新增聊天界面或 Agent 执行循环。
计划面向 Windows、macOS 上本机运行的 Claude Code、Codex 和 OpenCode,并根据实际验证结果明确支持范围。WSL、容器和远程开发环境的路径及认证差异可以留待后续处理。
- 保持数据和现有配置的边界
- 主机信息及客户端绑定默认在本机保存。
- 不覆盖用户已有的全局提示词、无关 SSH 配置或同名 Skill。
- 明确处理生成内容与现有数据库导出、Skill 云同步之间的边界,避免泄漏认证资料或在其他设备上产生错误绑定。
- 不将“保存成功”“SSH 测试成功”和“客户端已识别 Skill”混为同一个状态。
Additional Context / 补充信息
注意到已有相关讨论:
- #1767:多台 SSH 服务器的远程配置同步。
- #1347:通过 SSH 设置远程 VPS 上的配置,已合并到 #1767 追踪。
本提议与这些需求有共同的远程服务器使用场景,但侧重点不同:
▎ 已有讨论主要关注将 CLI 供应商配置同步到远端;本提议关注让本地 Agent 发现用户配置的服务器,并通过现有终端能力使用 SSH 进行管理。
第一版希望保持较小范围,不包含:
- 远程供应商配置同步。
- 内置终端或聊天界面。
- 监控图表、Docker 管理面板。
- 常驻后台运维 Agent。
- 跨客户端的强制权限隔离。
在开始正式实现前,希望先确认:
- 这个方向是否符合 CC Switch 的定位?
- “独立 VPS 管理入口 + 通用 Skill + 各客户端主机目录”的方式,是否适合现有架构?
- 是否已有相关工作正在推进,以及维护者建议第一版控制在什么范围?
我愿意在确认方向和范围后参与实现,并尽量以小而聚焦、经过实际验证的 PR 推进。
Contribution / 参与贡献
- I am interested in contributing to this feature. 我有兴趣参与开发此功能。
Source: farion1231/cc-switch