OpenCockpitOpenCockpit
← 返回博客

把 Claude Code GUI 自托管到共享开发机:一台机器,全队一起飞

发布于 2026年7月2日 · 6 分钟

OpenCockpit 是 Web client-server 架构:在共享开发机上装一次,每个队友打开浏览器就有一个席位 —— 各自在自己的项目 / worktree 上 AI coding。部署只要 5 分钟。

大多数 Claude Code GUI 是桌面应用:一台笔记本装一份、一个人配一套、一台机器一个座位。OpenCockpit 是 Web client-server 架构 —— 这解锁了桌面应用做不到的部署方式:

在代码所在的机器上装一次。每个队友打开浏览器,就有一个席位。

不用每台笔记本都装,没有"在我机器上是好的"。一台机器,全队一起飞。

为什么是共享开发机?

  • 代码本来就在那。很多团队有一台配置好的开发机(或云上 VM):仓库克隆好了、数据库跑着、服务连着。Cockpit 装在代码旁边,而不是把代码拖到每台笔记本上。
  • 一套环境,零漂移。Node 版本、claude CLI 登录、Ollama 模型、数据库凭据 —— 配一次,全队共享。
  • 算力共享。一台 GPU 机器承载所有人的 Ollama tab,笔记本保持凉快。
  • 任何设备都是一个席位。客户端只需要浏览器 —— 包括同一 VPN 里的手机。

部署(5 分钟)

在开发机上:

# 1. 安装(Node ≥ 20)
npm install -g @surething/cockpit

# 2. 暴露到网络 + 远程客户端要求令牌
COCKPIT_HOST=0.0.0.0 cockpit --token your-shared-secret

就这样。两个开关值得了解:

开关含义
COCKPIT_HOST默认 127.0.0.1(仅本机)。设为 0.0.0.0 接受局域网 / VPN 客户端。
--token(或 COCKPIT_TOKEN远程客户端必须出示令牌;loopback 豁免,本机 CLI 使用完全不受影响。详见访问令牌一文

想常驻运行,交给你惯用的进程管理器 —— 最小 systemd unit:

[Unit]
Description=OpenCockpit
After=network.target

[Service]
User=dev
Environment=COCKPIT_HOST=0.0.0.0
Environment=COCKPIT_TOKEN=your-shared-secret
ExecStart=/usr/local/bin/cockpit
Restart=on-failure

[Install]
WantedBy=multi-user.target

给每个队友一个席位

每人打开:

http://<dev-box>:3457/?token=your-shared-secret

Cockpit 会写入 cookie 并清理 URL —— 令牌不会留在地址栏里。接下来,每个人:

  • 自己的项目开成一个 tab(多项目 tab 是相互独立的会话);
  • 两个人改同一个仓库时,各占一个 git worktree —— Cockpit 在 Explorer 里直接管理 worktree,并行的 Agent 不会互踩检出;
  • 每个 tab 自选引擎:默认 Claude,也可以带自己的 Key 用 Codex / DeepSeek / Kimi / Ollama

每个席位都是完整驾驶舱:Agent 对话、xterm.js 终端、Chrome 控制、PostgreSQL / MySQL / Redis 气泡、代码评审页、定时任务。

实话实说:它是什么,不是什么

OpenCockpit 的多席位模型是基于信任的,就像共享机器的 SSH 权限:

  • 令牌管的是进门不是按用户隔离的账号体系。持有令牌的人看到同样的项目和会话。
  • 把它当 shell 权限对待:适合本来就共用开发机的团队,不适合陌生人。
  • 保持在局域网或 VPN 内(Tailscale / WireGuard 都很合适)。不要把端口裸暴露在公网。

如果你的团队本来就 SSH 到同一台机器,Cockpit 只是给这台机器加了席位 —— 不改变你的安全模型。

FAQ

两个人能同时用吗? 能 —— 这正是设计目标。每个浏览器是独立客户端,会话在服务端并行运行。

同一个仓库、两个 Agent? 用 git worktree(Explorer 里可视化管理)。每个 Agent 有自己的检出,分支按正常 git 流程合并。

过 Tailscale / WireGuard 能用吗? 能。就是单端口的 HTTP + WebSocket(默认 3457--port 可改)。

手机能用吗? 能 —— 三面板滑动布局就是为此设计的。同一个 URL、同一个令牌。

Ollama 全离线? 在开发机上装 Ollama,每个席位都能选任意已拉取的模型。无 Key、无云端,想断网就断网。


一台机器上一句 npm i -g,全队一起飞。试过之后告诉我们体验如何;如果文中步骤过时了,欢迎 PR 指正。