三端协同:用飞书统一调度多台设备上的 Claude Code

我的设备矩阵

先交代背景。我现在日常用三台设备:

设备 角色 Claude Code 在线情况
极空间 NAS 数据中枢 + Docker 宿主 容器内运行,命令不全,功能受限 24h 开机
MacBook 办公主力 功能最完整 下班关机
Windows 笔记本 家中辅助 功能最完整 24h 开机,偶尔关机

三台设备分散在不同位置、不同网络环境,但有一个共同点:每台都装了 Claude Code,而且都通过 cc-connect 桥接到了飞书

核心问题只有一句话——能不能用飞书作为唯一入口,随时随地指挥任意一台设备干活?

答案是能。下面说怎么做到的。


架构全景

flowchart TB subgraph ControlPlane["🎮 控制面 — 飞书统一调度"] direction LR Bot["飞书群 @bot<br/>随时随地发指令"] CC["cc-connect<br/>消息桥接"] Bot -->|"指令"| CC end subgraph Devices["💻 执行层 — 三台 Claude Code 设备"] Mac["MacBook<br/>白天主力 · 功能最全<br/>⚠️ 下班关机,夜间缺位"] Win["Windows 笔记本<br/>全天候替补 · 功能最全<br/>⚡ 24h 在线填补夜间空白"] NAS["极空间 NAS<br/>数据中枢 · 命令不全<br/>⚡ 24h 在线做轻量兜底"] end subgraph DataPlane["📦 数据面 — 极空间文档双向同步 (Syncthing)"] Hub["极空间 NAS 数据中枢<br/>24h 运行 · 权威副本"] Sync["Syncthing 实时双向同步<br/>文件变更秒级到达所有设备"] end CC -->|"遥控"| Mac CC -->|"遥控"| Win CC -->|"遥控"| NAS Mac <-->|"工作区同步"| Sync Win <-->|"工作区同步"| Sync NAS <-->|"工作区同步"| Sync Sync --- Hub

两个核心组件:

  • cc-connect — 消息桥接层,把飞书机器人消息翻译成 Claude Code 指令,各设备独立配置
  • Syncthing(极空间文档双向同步) — 三台设备的工作区数据实时同步,保证任何一台设备拿到任务时,看到的都是同一份最新文件

为什么搞这套架构

三个痛点凑到了一起:

  1. Mac 下班就关机。晚上想临时让 Claude Code 跑点东西,机器不在线,干瞪眼。
  2. 极空间 24h 在线,但 Claude Code 是残血版。跑在 Docker 容器里,一些系统命令不完整,复杂操作受限。
  3. Windows 笔记本 24h 在线且功能完整,但不是主力机。在家放着,偶尔会被家人关机。

单看每一台设备都有短板。但把它们拼在一起,优势互补——24h 在线 + 功能完整 + 数据同步,三个条件同时满足。


各设备的角色分工

极空间 NAS — 数据中枢 + 低负载常驻

flowchart TD NAS["极空间 NAS"] NAS --> S1["Syncthing 服务<br/>数据双向同步 · 24h 运行"] NAS --> S2["Docker 容器<br/>claude-code-with-cc-connect"] S2 --> S2a["cc-connect → 飞书桥接"] S2 --> S2b["Claude Code(容器内,命令不全)"] NAS --> S3["文件存储<br/>所有同步数据的权威副本"]

擅长的事:

  • 文档双向同步永不离线,充当"数据交换中心"
  • 简单的文件操作、信息查询、定时任务
  • 作为 Syncthing 的常驻节点,保证数据同步不中断

不擅长的事:

  • 需要完整 shell 环境的复杂操作
  • 需要安装额外工具的 ad-hoc 任务

MacBook — 主力战力

flowchart TD Mac["MacBook"] Mac --> M1["原生 Claude Code(功能最全)"] Mac --> M2["cc-connect → 飞书桥接"] Mac --> M3["Syncthing 同步工作区数据"]

擅长的事:

  • 复杂代码编写和重构
  • 日常办公期间的高强度 AI 编程
  • 所有高级功能(工具调用链路完整)

限制:

  • 下班关机,晚上联系不上

Windows 笔记本 — 全天候高战力替补

flowchart TD Win["Windows 笔记本"] Win --> W1["原生 Claude Code(功能最全)"] Win --> W2["cc-connect → 飞书桥接"] Win --> W3["Syncthing 同步工作区数据"]

擅长的事:

  • Mac 下班后的主力执行者
  • 和 Mac 同等的完整功能
  • 24h 在线(只要不被家人关机)

限制:

  • 偶尔被关机
  • 非主力机,体感上不如 Mac 顺手(但飞书操控时体感一致)

核心技巧:飞书里的设备调度策略

技巧一:按场景指定设备

在飞书群里发消息时,加上前缀指定目标设备:

@bot [mac] 帮我重构 src/auth.ts 的登录逻辑
@bot [win] 跑一下后端测试套件
@bot [nas] 检查 workspace 目录下有哪些未提交的文件

设备名和 cc-connect project name —— 对应,配置在每台设备的 config.toml 里。三台设备注册为三个不同的 project,飞书群里它们各自监听,收到自己名字的消息才响应。

技巧二:让 24h 设备兜底

凌晨时段(Mac 确定关机)的请求自动落到 Windows 笔记本:

# 晚上 11 点,在飞书发:
@bot 帮我给 PR #42 做 code review

# Mac 已关机没反应
# 极空间能力不够
# → Windows 笔记本收到并执行 ✓

不需要手动判断谁在线——离线设备不响应,在线设备自然接管。这个"静默fallback"机制比做复杂的健康检查更可靠。

技巧三:Syncthing 保证数据无缝衔接

这是整个架构最关键的一环。

你在 Mac 上写了一下午代码,commit 推到仓库,工作区里还有一堆未提交的临时文件。下班后 Mac 关机,但这些东西已经通过 Syncthing 实时同步到了极空间和 Windows 笔记本。

晚上你用飞书让 Windows 笔记本继续工作——它打开 workspace,看到的和下午 Mac 上的内容完全一致。没有任何"先 push 再 pull"的手动同步步骤,Syncthing 替你做了。

sequenceDiagram participant Mac as MacBook participant NAS as 极空间 NAS participant Win as Windows 笔记本 Mac->>NAS: Syncthing 实时同步文件 Note over Mac: 下班关机 ✕ NAS->>Win: Syncthing 实时同步文件 Note over Win: 继续工作 ✓<br/>workspace 内容与 Mac 完全一致

技巧四:Plan/Task 接力 — 下班前留作业,回家后继续做

这是最能体现这套架构价值的场景。

下班前在 Mac 上干活,功能做了一半,逻辑还没跑通——直接关机会丢上下文。以前要么硬撑着搞完,要么明天重新来过。现在的做法是:

第一步:在 Mac 上把思路结构化。 用 Superpowers 的 brainstorming 理清需求,再用 writing-plans 生成一份实现计划(plan),或者是 executing-plans 拆成一组 task。这些文件直接落在 workspace 里。

第二步:关机上地铁。 Syncthing 已经把 plan/task 文件和所有未提交的改动同步到了极空间和 Windows 笔记本。不需要手动 push,不需要发邮件给自己。

第三步:飞书发指令,让 Windows 笔记本接力。 到家后(或者通勤路上)打开飞书:

@bot [win] 读取 data/superpowers/plans/xxx.md,按计划继续执行

Windows 笔记本上的 Claude Code 打开 plan 文件,上下文完整,接着 Mac 的进度继续干活。

第四步:第二天回到 Mac。 Windows 笔记本昨晚的执行结果——代码改动、生成的文件、task 状态更新——早已通过 Syncthing 同步回来了。打开 Mac,工作区里什么都在,就像没中断过一样。

sequenceDiagram actor User as 🧑 你 participant Mac as 💻 MacBook<br/>(办公室) participant NAS as 📦 极空间<br/>Syncthing 中枢 participant Win as 🖥️ Windows 笔记本<br/>(家中) participant Feishu as 📱 飞书 rect rgb(240, 248, 255) Note over User, NAS: ⏰ 18:00 — 下班前,在 Mac 上 activate Mac User->>Mac: 功能做了一半,不想丢上下文 Mac->>Mac: Superpowers 生成 plan + task 文件 Mac->>NAS: 📤 Syncthing 自动同步<br/>plan/task + 未提交代码 deactivate Mac Note over Mac: 🌙 关机,下班走人 end rect rgb(255, 250, 240) Note over NAS, Win: Syncthing 后台静默工作 NAS->>Win: 📥 实时同步到 Windows 笔记本 Note over Win: 💤 待命中,数据就绪 end rect rgb(240, 255, 240) Note over User, Win: ⏰ 20:00 — 到家,掏出手机 activate Feishu User->>Feishu: " @bot [win] 读取 plan,<br/>继续执行未完成的任务" Feishu->>Win: 🚀 转发指令 activate Win Win->>NAS: 📥 加载 workspace 中的 plan Note over Win: 🤖 Claude Code 按计划接力干活<br/>跑测试、写代码、生成结果 Win->>NAS: 📤 Syncthing 回传执行结果 deactivate Win deactivate Feishu end rect rgb(255, 245, 255) Note over User, Mac: ⏰ 次日 09:00 — 回到办公室 activate Mac NAS->>Mac: 📥 昨晚的执行结果已同步 User->>Mac: 打开 workspace,一切就绪 Note over Mac: ✨ 无缝衔接,从未中断 deactivate Mac end

核心在于——用 Superpowers 把"脑子里的进度"转成"文件里的 plan/task",跨设备的不是代码,是上下文。 代码 git 能同步,但"接下来该做什么"只有 plan 能传递。


极空间 Docker 容器的取舍

极空间上跑的 claude-code-with-cc-connect 镜像(基于 node:20,详见上篇博客)。虽然容器内环境已经比较完整,但和原生安装的 Claude Code 比还有差距:

方面 Docker 容器内 原生安装
系统命令 受限(容器最小化) 完整系统工具链
工具安装 需要重建镜像 随时 npm/pip install
权限 node 用户 当前用户
稳定性 容器重启配置丢失 稳定

所以实际使用中,极空间的 Claude Code 只承担轻量任务。真正重度开发通过 Mac 或 Windows 笔记本完成。

一个教训: 别试图让一台设备干所有事。Docker 容器里的 Claude Code 再优化也比不上原生安装。接受"每台设备各有定位"这个前提,架构设计会简单很多。


踩过的坑

坑一:Syncthing 冲突文件

三台设备同时修改同一个文件时,Syncthing 会产生冲突副本(文件名加 .sync-conflict-*)。Claude Code 操作文件时偶尔会读到冲突副本。

解决: 不要让两台设备同时操作同一文件。飞书调度时,一次任务只落到一台设备。另外 .stignore 里排除 .sync-conflict-* 文件,避免 Claude Code 误读。

坑二:飞书消息延迟

飞书 → cc-connect → Claude Code 的链路有 2-5 秒延迟。发了消息没立刻反应是正常的,不要连发——三条消息会被当成三个独立任务排队执行。

解决: 接受延迟,一条消息等到底。长任务更适合这套链路("帮我重构 X"比"ls 一下"更合适)。

坑三:Windows 休眠断网

Windows 笔记本长时间不操作可能进入休眠,飞书发消息无响应。

解决: 电源设置里关掉休眠,只保留显示器关闭。或者写个定时 ping 脚本保持唤醒。

坑四:cc-connect 锁文件

容器意外停止后,config.toml.lock 残留导致重启失败。上篇博客已详述,在 entrypoint.sh 里加了 rm -f 解决。


效果:真正的随时随地

现在我的工作方式是:

  • 白天在办公室,用 Mac 写代码,Claude Code 全功能直连
  • 通勤路上,飞书发消息让家里的 Windows 笔记本提前跑测试、拉代码、准备环境
  • 晚上在家,Mac 关机了,飞书继续指挥 Windows 笔记本做白天没搞完的事情
  • 周末出门,极空间和 Windows 双保险在线,不会出现"所有设备全离线"
  • 所有设备的工作区数据,通过极空间的 Syncthing 实时同步,切换设备零摩擦

核心思路就一条:不要试图让单一设备满足所有需求,而是用消息平台 + 文件同步把多台设备编织成一张网。

飞书是遥控器,Syncthing 是神经中枢,三台设备各司其职。

posted @ 2026-05-19 17:29  司野良  阅读(0)  评论(0)    收藏  举报