内容
# 代码协作桥
[](https://github.com/abhinaykrupa/cowork-to-code-bridge/actions/workflows/ci.yml)
[](https://github.com/abhinaykrupa/cowork-to-code-bridge/actions/workflows/ci.yml)
[](https://github.com/abhinaykrupa/homebrew-tap)
[](https://pypi.org/project/cowork-to-code-bridge/)
[](https://pypi.org/project/cowork-to-code-bridge/)
[](https://pypi.org/project/cowork-to-code-bridge/)
[](https://github.com/abhinaykrupa/cowork-to-code-bridge/stargazers)
[](https://github.com/abhinaykrupa/cowork-to-code-bridge/releases)
[](https://github.com/abhinaykrupa/cowork-to-code-bridge/releases)
[](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/LICENSE)
[](#)
> ⭐ **如果这节省了您的时间,[一颗星帮助其他人找到它](https://github.com/abhinaykrupa/cowork-to-code-bridge/stargazers)。** 只需一键。
**让 Claude 在您的真实机器上安全地运行代码 — 从任何 Claude 聊天中。** 与 Hermes、cron 作业、CI/CD 或任何守护进程集成。
<p align="center">
<img src="https://raw.githubusercontent.com/abhinaykrupa/cowork-to-code-bridge/main/docs/demo.svg" alt="Cowork 将 '为我构建一个 Flask 应用' 任务交给机器上的 Claude Code;它搭建、安装、运行并验证它 — 然后返回结果。" width="100%">
</p>
> 🖥️ **macOS、Linux 和 WSL2.** 在您的 Mac(launchd)、Linux 盒子/服务器(systemd,或 [手动路径](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/LINUX-NO-SYSTEMD.md) 用于容器/最小发行版)或 **通过 WSL2 的 Windows**(Ubuntu 中的 systemd)上运行。原生 Windows 当前不受支持 — 请参见 [docs/WSL.md](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/WSL.md)。
[Claude Cowork](https://claude.ai/cowork)(和浏览器中的 Claude)非常适合规划和编辑,但它运行在密封的云沙盒中 — 无法访问您的实际机器。**Claude Code** 在您的计算机上运行,*可以*:它拥有您的 shell、存储库、工具和完整的代理能力。
这个桥接器连接两者。Cowork 将任务交给**机器上的 Claude Code**,一个真正的本地代理执行工作,结果流式返回到您的聊天中。所以,您可以说:
> *"在我的机器上为我构建一个 Web 应用,安装依赖并运行它"*
> *"运行测试套件并修复失败的内容"*
> *"审查差异并推送如果它干净"*
… 而且 Claude Code 代理在您的计算机上实际执行了它。
因为 Claude Code 可以在您的 Mac 上运行,一个有用的**副作用**是,同样的桥接器允许 Cowork 直接运行已批准的 shell 脚本(构建、git、磁盘检查)而无需通过代理 — 对于简单的固定操作非常方便。
**它是幂等的。** 任务有副作用(编辑、提交、推送),因此桥接器通过幂等键缓存结果:连接断开后重试返回缓存的结果,而不是运行代理 — 或脚本 — 两次。
---
> **让云聊天访问我的机器安全吗?** 简短答案:桥接器
> 打开 **没有网络端口**,从不使用 `sudo`,**只运行您批准的脚本**,
> 由一个秘密令牌控制,并且可以一键卸载。完整的
> 威胁模型在 **[SECURITY.md](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/SECURITY.md)** 中。
## 安装 — 两次粘贴
**步骤 1 — 在您的机器上(一次)。** 打开终端(`Cmd + Space` → **终端**),粘贴以下内容,按 Enter:
```bash
# Homebrew(推荐 macOS)
brew tap abhinaykrupa/tap
brew install cowork-to-code-bridge
brew services start cowork-to-code-bridge
# 或:单行命令(macOS + Linux + WSL2)
curl -fsSL https://raw.githubusercontent.com/abhinaykrupa/cowork-to-code-bridge/main/install.sh | bash
```
**macOS(Homebrew)** — 一旦 [维护者 tap](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/HOMEBREW.md) 发布:`brew install abhinaykrupa/tap/cowork-to-code-bridge`。有关详细信息和演示 tap,请参见 **[docs/HOMEBREW.md](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/HOMEBREW.md)**。
等待 ~30 秒。它安装了一个小的后台助手(自动重启,安全重启)和一个 Claude 技能。当它完成时,它会打印出 **带有您实际路径的连接行** — 复制该行,或使用下面的模板。
一旦软件包在 PyPI 上发布,安装程序更倾向于从那里使用 `pip install`(比 GitHub 回退更快)。
<details>
<summary>开发者 / pip(仅限软件包 — 不包括完整的桥接器设置)</summary>
```bash
pip install cowork-to-code-bridge
cowork-to-code-bridge-selfcheck
```
这安装了 Python 软件包和控制台脚本(`cowork-to-code-bridge-daemon`、`-uninstall`、`-selfcheck`)。它 **不** 设置 launchd/systemd、Cowork 技能、允许的脚本或桥接器令牌。要使用完整的桥接器,请使用上面的 `curl | bash` 单行命令(或 macOS 上的 Homebrew)。
有关发布版本的信息,请参见 **[docs/RELEASING.md](docs/RELEASING.md)**。
</details>
**步骤 2 — 在 Cowork 中(每个聊天一次)。** 将连接行粘贴到任何 Claude Cowork 聊天中(用安装程序打印的路径替换):
```text
通过 ~/.cowork-to-code-bridge 中的 cowork-to-code-bridge 桥接器连接到我的机器 — 挂载该文件夹,读取其中的 CLAUDE.md,并确认桥接器已启动。
```
Claude 请求允许查看该文件夹(**批准**),读取其中的说明,并确认 **`BRIDGE LIVE`**。现在,在该聊天中,只需聊天:
> *"在我的机器上为我构建一个小型 Web 应用"* · *"运行我的测试并修复失败的内容"* · *"检查我的机器的健康状况"* · *"推送我的项目"*
Claude 将工作交给机器上的 Claude Code,并带回结果。
> **为什么是第二次粘贴?** Cowork 的沙盒无法在您授予对桥接器文件夹的访问权限之前看到您的机器 — 这是每个聊天的一次性权限,连接行就是触发它。无需下载,无需 `/plugin`,无需弹出窗口。
> **没有 Python 3.10+?** 在 **macOS** 上,安装程序可以通过 Homebrew 安装 Python(如果需要,还可以安装 Homebrew)。在 **Linux/WSL** 上,请使用您的发行版软件包(`apt install python3.12` 等)。在 Mac 上跳过自动安装,设置 `BRIDGE_PYTHON_AUTOINSTALL=0`。
### Windows(WSL2)
在 Windows 上,请在 **WSL2**(Ubuntu)内部安装,而不是 PowerShell 或 Git Bash。您需要在 WSL 中启用 [systemd](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/WSL.md#1-enable-systemd-in-wsl),然后在您的 Ubuntu 终端中使用相同的单行命令。完整的操作指南: **[docs/WSL.md](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/WSL.md)**。
<details>
<summary>安装程序将内容放在哪里(供好奇的/开发者)</summary>
- **守护进程** → 从 `~/.cowork-to-code-bridge/` 运行,由 launchd(macOS)、systemd --user(Linux)或 [手动路径](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/LINUX-NO-SYSTEMD.md) 管理(当 systemd 不可用时)。
- **全局技能** → `~/.claude/skills/cowork-to-code-bridge/`(SKILL.md + `bridge_client.py` + 一个指向 `BRIDGE_ROOT` 的 `bridge_env.json`)。
- **允许的脚本** → `~/.cowork-to-code-bridge/scripts/`(`run_claude.sh`、`mac_health.sh` 等)。
- **`CLAUDE.md`** → 编写到 `~/.cowork-to-code-bridge/` 中,以便桥接器在 Cowork 会话挂载文件夹后自我记录。
Cowork 端导入同一目录下的 `bridge_client.py` — 纯标准库,无需 pip,无需网络获取。
</details>
---
## 工作原理
Cowork 无法直接访问您的机器(它是沙盒化的)。因此,桥接器使用双方都可以看到的文件夹:Cowork **写入** 任务到其中,一个小型助手在您的机器上 **运行** 它(将实际工作交给 Claude Code),并 **写回** 结果。无需打开端口,无需服务器,两个之间无需网络调用。
```
☁️ CLAUDE COWORK(云沙盒) 🖥️ 您的机器(Mac/Linux)
─────────────────────────────── ─────────────────────────────────
您: “为我构建一个应用” launchd/systemd 保持守护进程
│ 运行(自动启动登录,
▼ 恢复重启)
cowork-to-code-bridge 技能 ▲
(在每个会话中自动加载) │
│ │
│ 1. 写入任务 ─────────► ┌───────────────────────┐ │
│ │ 共享桥接文件夹 │ │
│ │ 队列/ ◄───────────┼──┘ 2. 守护进程拾取
│ │ 结果/ ────────────┼──┐ 任务
│ 4. 读取结果 ◄──────────│ 进度/(实时日志) │ │
│ (+ 实时进度) └───────────────────────┘ │ 3. 运行它:
▼ │ run_claude.sh
Claude 显示输出 ▼ → Claude Code
真实的 Claude Code 代理
构建 / 测试 / 提交,
流式输出
```
**四个活动部件:**
| 部件 | 位置 | 它执行的操作 |
|---|---|---|
| **技能** | 每个 Cowork 会话(`~/.claude/skills/`) | 自动加载;将纯英文请求转换为任务并读取结果。无需在 Cowork 中安装。 |
| **共享文件夹** | `~/.cowork-to-code-bridge/` | 交接点:`队列/`(任务输入),`结果/`(答案输出),`进度/`(实时输出,用于长时间作业)。 |
| **守护进程** | 您的机器,由 `launchd`(macOS)、`systemd --user`(Linux)或手动启动(容器)运行 | 监视 `队列/`,仅运行允许的脚本,写入结果。在支持的服务管理器上自动重启。 |
| **`run_claude.sh`** | 您的机器 | 将任务交给真正的 **Claude Code** 代理 — 它构建实际产品。 |
**为什么它是安全的:** 没有网络监听器(无法连接),一个秘密令牌控制每个请求,守护进程仅运行您批准的脚本。**为什么它在崩溃后存活:** 每个任务都被记录并标记为进行中;中途重启被检测到,从不会被静默重新运行(幂等键使重试安全)。
---
## 等等 — 您真的需要这个吗?
**也许不需要。** 这取决于 *您在哪里与 Claude 交谈:*
| 如果您使用… | Claude 是否已经可以在您的 Mac 上运行程序? | 您需要这个桥接器吗? |
|---|---|---|
| **Mac 上的 Claude 桌面应用** | ✅ 是 — 它直接在您的机器上运行 | **否。** 只需让 Claude 运行程序。无需安装。 |
| **浏览器中的 Cowork / 云** | ❌ 否 — 它在与您的 Mac 隔离的云沙盒中运行 | **是** — 这是连接它的唯一方式。 |
不确定您是哪种情况?只需遵循 [上述两步安装](#install--two-pastes-total) — 当您将连接行粘贴到 Cowork 中时,Claude 会为您检查,如果您不需要桥接器,它会告诉您并跳过它。
---
## 比较
有几种方法可以将 Claude 接近一台机器。以下是该桥接器的位置,
诚实地说 — 包括您 **不需要** 它的情况:
| 方法 | 在哪里运行 | 是否访问您的真实 shell / 文件 | 始终在线 / 恢复重启 | 最适合 |
|---|---|---|---|---|
| **单独的 Cowork** | 本地虚拟机(沙盒) | ❌ 仅限授予的工作区文件夹;沙盒与主机隔离 | n/a | 您根本不需要主机机器 |
| **Web 上的 Claude Code( `--remote`)** | Anthropic 云 | ❌ 仅限克隆的存储库;无主机访问 | ❌ 云会话 | 任务完全在 GitHub 存储库内 |
| **远程控制( `--remote-control`)** | **您的机器** | ✅ 完整的本地 shell/文件 | ⚠️ 在 `claude` 停止时结束;约 10 分钟离线超时;需要付费的 claude.ai 登录 | 您正在从手机/网络驱动实时本地会话并保持运行 |
| **MCP(本地服务器)** | 您的机器 | ✅ 在您构建的服务器内 | ⚠️ 您运行/维护服务器 | 您需要结构化工具调用,而不是完整的代理任务 — **但 Cowork 的沙盒无法访问本地 MCP 服务器** |
| **SSH / 自托管运行器** | 您的机器 | ✅ 完整 | ✅ 如果您设置了 | 您习惯于运行和保护自己的监听器 |
| **此桥接器** | **您的机器** | ✅ 完整(一个真正的 Claude Code 代理) | ✅ 守护进程自动重启,重启安全,无需保持会话 | 您想从 Cowork 聊天 **驱动您的机器**,无需打开端口,幂等 |
**诚实的结论:** 最接近的官方选项是 **远程控制** — 相同的安全性(本地执行,仅限输出,无传入端口)。桥接器的不同之处在于它由 **Cowork 聊天** 驱动,无需保持运行的会话(后台守护进程在重启后存活),并且在连接断开时具有幂等性,并且可以直接运行已批准的脚本。 如果您生活在实时 Claude Code 终端会话中,远程控制可能更适合您 — 使用适合您实际与 Claude 交谈的位置的工具。
> 上述功能事实反映了 2026 年中旬 Anthropic 的已发布文档(`code.claude.com/docs`)。它们会随时间演变 — 欢迎通过问题或 PR 提出更正。
---
## 安全吗?
大部分是 — 需要您注意的部分在下面诚实地说明了。
- **仅运行已批准的脚本。** 桥接器仅运行您在 Mac 上特定文件夹中保存的脚本。Cowork 无法运行任意命令 — 它只能触发您已启用的脚本。
- **没有互联网监听器。** 桥接器不打开任何端口。来自外部世界没有任何东西可以与它交谈。
- **令牌保护。** 在安装过程中会生成一个秘密令牌。只有知道该令牌的 Cowork 会话才能使用桥接器。
- **以您的身份运行。** 桥接器使用您的正常用户权限运行 — 没有更多,没有更少。
- **幂等。** 重试不会运行任务或脚本两次 — 具有相同键的重复请求返回缓存的结果。
**需要了解的一件事:** 标头脚本 `run_claude.sh` 将一个 **自由形式的任务** 交给 Mac 上的 Claude Code 代理。该代理与通常的 Claude Code 一样具有能力 — 它可以编辑文件、运行命令、提交、推送。那是您想要的功能,但这意味着 Cowork 的任务由一个具有您机器访问权限的真实代理执行。如果您想限制它,`run_claude.sh` 有一个明确标记的位置来添加限制(例如仅限计划模式或工具白名单) — 请参见 [脚本](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/examples/allowed_scripts/run_claude.sh) 和 [架构文档](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/architecture.md)。对于固定、可预测的操作,请更喜欢特定脚本而不是 `run_claude.sh`。
**可选:计划批准门。** 如果您希望在任何任务运行之前有一个程序化最后一道防线,请将 [`examples/allowed_scripts/approve_plan.sh`](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/examples/allowed_scripts/approve_plan.sh) 复制到 `~/.cowork-to-code-bridge/scripts/approve_plan.sh` 并使其可执行。当 Cowork 提交带有 `plan` 字段的任务时,桥接器首先运行您的钩子 — 以 0 退出以继续,以 2 退出以拒绝(钩子的消息返回给 Cowork)。如果文件不存在,则会静默忽略计划字段,什么也不会改变。
**Claude Code 路径的要求:** `run_claude.sh` 需要在您的 Mac 上安装 Claude Code **CLI**(`claude`)。**Claude 桌面应用单独是不够的** — 它捆绑了自己的副本,但不公开 `claude` 命令。如果缺少 CLI,`run_claude.sh` 尝试动态安装它(`brew install claude-code` 或官方安装程序),然后继续;如果失败,它会返回确切的单行安装命令。要关闭自动安装(并仅获取安装说明),请设置 `BRIDGE_CLAUDE_AUTOINSTALL=0`。系统信息脚本(`mac_health.sh` 等)根本不需要 CLI。
您可以 [一键卸载](#uninstall) 它。
## 我可以请求什么?
**主要功能:将任务交给Mac上的Claude Code。** 安装程序附带了一个名为`run_claude.sh`的脚本,恰好可以完成这项任务。从Cowork中,您可以说类似 *"让Mac上的Claude Code运行测试并修复出现的问题"*,然后Mac上的Claude Code代理将执行该任务并返回报告。这就是主要功能 — Cowork委托给完整的本地代理。
有关将Cowork请求映射到捆绑脚本的复制粘贴示例,请参阅
**[Cowork Recipes](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/RECIPES.md)**。
安装程序提供以下内容:
- `run_claude.sh` — **将任务交给Mac上的Claude Code** (主要功能)
- `mac_health.sh` — 完整的健康快照(CPU、内存、磁盘、电池、顶级进程)
- `mac_ram.sh` — 内存使用情况
- `mac_disk.sh` — 磁盘空间
- `mac_top.sh` — 按CPU和内存排列的顶级进程
- `mac_network.sh` — 网络状态和连接性
- `port_check.sh` — 显示TCP端口上正在监听的内容
- `docker_ps.sh` — 列出正在运行的Docker容器
- `docker_logs.sh` — 跟踪容器的日志(可选的行数,默认为50)
- `git_status.sh` — 在任何存储库目录中运行`git status --short --branch` (传递路径作为参数)
- `pkg_outdated.sh` — 列出过时的软件包(macOS上的brew;Linux上的apt/dnf/yum/pacman)
- `list_scripts.sh` — 列出桥可以运行的每个脚本,并附有描述(以便Cowork可以发现可用的脚本)
- `env_check.sh` — 显示关键环境值(PATH,`BRIDGE_ROOT`,`CLAUDE_FLAGS`,`claude` CLI),而不泄露您的令牌
- `disk_hogs.sh` — 路径中最大的文件/文件夹(传递目录和可选计数)
- `open_browser.sh` — 在默认浏览器中打开`http(s)`/localhost URL(在本地开发服务器启动后非常有用)
- `request_cowork.sh` — 将请求从Mac上的Claude Code发送到Cowork会话(异步收件箱)
- `ping.sh` — 确认桥正常工作
- `hello.sh` — 回显问候
因此,从Cowork中,您可以直接说 **"检查我的Mac的健康状况"** 或 **"我使用了多少RAM?"**,并从实际的机器中获取真实的数字 — 而Cowork本身无法做到这一点。对于开放式的问题(例如 "为什么我的Mac很慢?"),它通过`run_claude.sh`路由到Claude Code,并由代理程序解决。
**副作用 — 直接运行固定操作。** 对于一些简单、可重复的操作,不需要整个代理程序(特定的构建命令、git推送),您可以保存一个小的"脚本",并直接调用它。只需问Claude: *"我想从这里将我的项目推送到GitHub。"* 它会编写脚本,告诉您在哪里保存,然后从那里 *"推送我的项目"* 就可以了。您永远不需要自己编写代码 — 您只需复制其输出到文件中。
<details>
<summary>脚本的实际外观(可选 — Claude为您创建这些脚本)</summary>
脚本只是一个短文本文件。"推送到GitHub"的脚本可能保存为`~/.cowork-to-code-bridge/scripts/git_push.sh`:
```bash
#!/usr/bin/env bash
cd "$1" # 第一个参数 = 您的项目文件夹
git push origin main
```
使其可运行一次 `chmod +x ~/.cowork-to-code-bridge/scripts/git_push.sh`,然后就完成了。
</details>
### 为什么使用脚本,而不是仅仅“运行任何命令”?
为了您的安全。如果Claude可以运行**任何**命令,一个错误的指令可能会造成真正的损害。通过只允许您已保存为脚本的操作,**您可以决定允许什么** — Claude永远无法运行您没有明确启用的任何操作。
---
## 每日使用
安装完成后,只需像往常一样与Cowork交谈。当需要您的Mac时,Claude将自动使用桥:
> **您:** "运行我的测试套件。"
> **Claude:** *在您的Mac上运行 `~/.cowork-to-code-bridge/scripts/run_tests.sh` 并显示输出。*
如果您请求的东西还没有脚本:
> **您:** "部署到预发布环境。"
> **Claude:** "我没有在您的桥脚本文件夹中找到 `deploy.sh`。您要我帮助您编写一个吗?"
---
## 验证您的安装
随时运行以下命令以确认桥处于健康状态:
```bash
cowork-to-code-bridge-selfcheck
```
它检查六项并为每项打印明确的PASS/FAIL:
```
cowork-to-code-bridge 自我检查
桥根目录:/Users/you/.cowork-to-code-bridge
平台:Darwin arm64
桥根目录 [PASS] /Users/you/.cowork-to-code-bridge
桥令牌 [PASS] 设置在 /Users/you/.cowork-to-code-bridge/.env
守护进程已注册 [PASS] launchd: 运行中(pid 1234)
技能已安装 [PASS] /Users/you/.claude/skills/cowork-to-code-bridge
乒乓测试 [PASS] 乒乓测试OK
claude CLI [PASS] /opt/homebrew/bin/claude
所有检查均通过。桥处于健康状态。
```
如果所有检查均通过,则退出状态为0;如果有任何检查失败,则退出状态为1 — 可以安全地在脚本或错误报告中使用。
---
## 卸载
一键命令,撤销安装程序所做的一切:
```bash
cowork-to-code-bridge-uninstall
```
它撤销了安装程序设置的一切:停止并移除后台守护进程,移除全局Cowork技能(因此它停止加载到您的Cowork会话中),删除桥文件夹(令牌、脚本、历史记录),并卸载Python包。在每个破坏性步骤之前,它都会询问;如果您全部肯定,则完全重置。
> **不需要网络,不需要Cowork步骤。** 卸载完全在您的Mac上进行。一旦技能被移除,您的Cowork聊天记录将不再具有桥 — 无需清理。
如果`cowork-to-code-bridge-uninstall`显示“命令未找到”,则您的Mac的PATH环境变量中不包含pip安装位置。请使用完整路径:
```bash
~/Library/Python/3.10/bin/cowork-to-code-bridge-uninstall
```
(调整`3.10`为您的实际Python版本 — `3.11`、`3.12`等)
或使用远程卸载:
```bash
curl -fsSL https://raw.githubusercontent.com/abhinaykrupa/cowork-to-code-bridge/main/daemon/uninstall.sh | bash
```
---
## 故障排除
### “Cowork说它找不到桥。”
通常这意味着您的Mac和Cowork沙盒之间的桥文件夹位置不匹配。告诉Claude:
> “显示我的桥文件夹路径。”
Claude将检查双方并告诉您需要修复的内容(通常是设置环境变量或重启守护进程)。
### “守护进程没有运行。”
在您的Mac上检查:
```bash
launchctl list | grep cowork-to-code-bridge
```
如果没有任何输出,则守护进程已停止。重启它:
```bash
launchctl load ~/Library/LaunchAgents/dev.cowork-to-code-bridge.daemon.plist
```
如果失败,请重新运行安装程序 — 安全,可以重新运行,正确设置的部分将跳过。
### “我运行了安装程序,但它说Python太旧了。”
库存macOS自带旧版Python(3.8)。您需要3.10+。最简单的解决方法:
```bash
brew install python@3.12
```
然后重新运行安装程序。
### “我在哪里可以找到守护进程日志?”
```bash
tail -50 ~/.cowork-to-code-bridge/daemon.log
tail -50 ~/.cowork-to-code-bridge/daemon.err # 如果有错误
```
### “我如何知道我的Mac是否处于干净的卸载状态?”
卸载后,所有这些都应返回空或“未找到”:
```bash
launchctl list | grep cowork-to-code-bridge
ls ~/Library/LaunchAgents/dev.cowork-to-code-bridge.daemon.plist
ls ~/.cowork-to-code-bridge
python3 -c "import cowork_to_code_bridge"
```
---
## 您可以使用它构建什么
一旦桥接建立,一个对话就可以运行整个项目 — 不仅仅是编辑文件,还可以实际运行、测试和部署它们。与Claude Code的内置技能(例如`frontend-design`、`code-review`、`security-review`)结合使用,一个对话涵盖了整个周期:
| 步骤 | 桥接如何帮助 |
|---|---|
| **构建和设计** | Claude Code 编写代码和UI |
| **运行** | 桥接启动您的应用和开发服务器 |
| **测试** | 桥接运行您的测试并显示结果 |
| **部署** | 桥接运行`git push`,打开PR,启动部署 |
| **操作** | 桥接检查日志,磁盘空间,重启服务 |
在桥接之前,需要您实际的机器的任何操作都意味着离开Cowork进入终端。现在所有操作都在一个对话中进行。
---
## 生态系统集成能力
cowork-to-code-bridge被设计为一个通用的**基于MCP的本地代码执行后端**,与更广泛的生态系统中的主要代理框架和开发平台无缝集成:
**代理框架和编排**
- **LangGraph** — 基于图的流程集成,实现本地代码执行节点
- **LangChain** — 基于代理的代码生成和验证的MCP客户端集成
- **AutoGen** — 通过MCP支持多语言的代码执行配置
- **CrewAI** — 具有安全本地代码执行模式的生产crew工作流程
- **Pydantic AI** — 通过代理工具进行结构化代码执行和验证
- **n8n** — 工作流自动化的安全本地代码执行步骤
- **Dify** — 自主代理工作流程的本地代码执行模式
- **Langflow** — 具有代码执行组件的视觉工作流构建器
- **Mastra, Upsonic, AutoGPT, OpenAI Swarm** — 通用代理基础设施
**模型上下文协议(MCP)生态系统**
- **官方MCP注册表** — 所有MCP客户端的规范服务器列表
- **MCP快速入门资源** — 状态ful MCP服务器模式的参考实现
- **MCP规范** — 长期运行操作的异步升级模式文档
- **GitHub的MCP服务器** — 配套模式,实现GitHub数据发现 + 本地代码执行
**开发者优先的平台**
- **Cursor, VS Code, 和IDE扩展** — 编辑器环境中Claude Code的MCP提供程序
- **OpenAI助手** — 基于助手的流程的代码执行后端
**基础设施和CI/CD**
- **GitHub Actions 和 Agentic工作流程** — 自托管运行者的本地执行集成
- **DevOps代理框架** — 具有本地代码执行上下文的基础设施自动化
- **Kubernetes 和容器原生工作流程** — MCP服务器部署模式
**社区和可见性**
- **精选注册表** — awesome-mcp-servers, awesome-ai-agents, awesome-mcp-clients, 500-AI-Agents-Projects
- **代理生态系统目录** — 在主要社区索引中列出,用于代理基础设施和执行后端
**集成方法**
每个集成都利用桥的核心功能:
- 零外部API密钥管理(使用本地Claude Code订阅)
- 完整的存储库和环境上下文访问
- JSONRPC 2.0 MCP标准协议
- 基于文件的队列,带有令牌身份验证
- 异步升级模式,用于非阻塞任务委托
- 具有唯一操作跟踪的幂等请求处理
桥是框架无关且协议标准的,使任何MCP感知工具能够升级代码执行任务,同时保持本地上下文、安全性和成本可预测性。有关特定于您框架的集成指南,请参阅 **[docs/EXTERNAL_AGENT_INTEGRATION.md](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/EXTERNAL_AGENT_INTEGRATION.md)** 和 **[docs/MCP_SERVER_IMPLEMENTATION.md](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/MCP_SERVER_IMPLEMENTATION.md)**。
---
## 它实际工作(供好奇的人)
```
Claude Cowork(沙盒) 您的Mac
─────────────────────── ────────
编写JSON → bridge/queue/cmd_*.json ← 由守护进程轮询(~1秒)
↓ 在您的白名单中运行脚本
~/.cowork-to-code-bridge/scripts/
↓
读取JSON ← bridge/results/cmd_*.json ← 守护进程写入结果
```
Cowork将一个小JSON文件放入一个文件夹中。Mac上的一个小程序(“守护进程”)看到这个文件,运行请求的脚本,并将输出写回。Cowork读取结果。两个之间没有网络连接。
文件夹是共享的,因为Cowork将您的项目目录挂载到其沙盒中。桥接利用了这个挂载。
### 为什么是这样而不是MCP?
[MCP](https://modelcontextprotocol.io) 适用于Claude和外部服务之间的结构化工具调用。它需要一个Claude可以连接的服务器进程。Cowork的沙盒无法访问Mac上的本地服务,因此MCP工具在那里不工作。
这个桥接采用了一种不同的方法:它使用**共享文件夹上的文件**,而不是网络连接。速度较慢(每次调用约1秒,而MCP为毫秒级),但可以从Cowork工作。
---
## 安全详情
- **身份验证:** 一个随机的32字符令牌(`BRIDGE_TOKEN`)在安装期间生成,并存储在`~/.cowork-to-code-bridge/.env`中,权限为`chmod 600`(只有您可以读取它)。来自Cowork的每个命令都包含此令牌。令牌错误 = 命令被拒绝。
- **授权:** 守护进程*仅*运行`~/.cowork-to-code-bridge/scripts/`中的脚本。脚本名称必须匹配严格的模式(字母数字,点,破折号,下划线)。不允许路径技巧(`../`,符号链接出)等。
- **超时:** 每个脚本都有最大运行时(默认60秒,最大10分钟)。失控的脚本会被杀死。
- **输出限制:** 标准输出和标准错误分别被截断为64 KB。巨大的输出不会填满您的磁盘。
- **无特权升级:** 守护进程以您的普通用户身份运行。它不能`sudo`,不能读取其他用户的 文件,不能触及您无法触及的任何内容。
现实中的威胁它*无法*抵御:
- 您自己编写的恶意脚本。(您编写了它,您拥有它。)
- 已经具有您Mac文件系统写入权限的人。(他们可以直接写入桥文件夹。)
- 守护进程本身的错误。(它是开源的 — 阅读代码,报告问题。)
---
## 常见问题
**问:这在Linux或Windows上有效吗?**
**macOS** (launchd),**Linux** (`systemd --user` 或 [无systemd安装路径](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/LINUX-NO-SYSTEMD.md)),以及 **WSL2 on Windows** (Ubuntu发行版中的systemd)都支持。**原生Windows** (PowerShell,任务调度器)不支持 — 使用WSL2;参见 [docs/WSL.md](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/docs/WSL.md)。
**问:这需要付费吗?**
不。它是免费和开源的(MIT)。
**问:我需要成为开发者才能使用它吗?**
您需要习惯粘贴一个终端命令。除此之外,不 — Claude会完成其余的工作。添加自定义脚本是“了解脚本是什么”级别,而不是“每天编写代码”级别。
**问:我的不同项目的Cowork代理可以共享一个桥吗?**
是的 — 一个守护进程为任意数量的Cowork会话提供服务。令牌在同一台Mac上的会话之间共享。
**问:我可以拥有多台Mac吗?**
是的 — 在每台Mac上分别安装桥接。每个桥接都会生成自己的令牌。Cowork会话会自动使用它们连接到的Mac。
**问:这是官方Anthropic项目吗?**
不。这是一个第三方工具,填补了Anthropic的Cowork尚不支持(但以后可能会支持)的空白。如果他们提供了原生的Cowork ↔ Mac IPC功能,您可以卸载此工具并切换。
**问:我担心有东西在我的Mac上运行我不知道的东西。**
三个保护措施:
1. 每个命令都写入`~/.cowork-to-code-bridge/processed/`,以便您审核历史记录。
2. 守护进程日志实时显示每个命令 — `tail -f ~/.cowork-to-code-bridge/daemon.log`。
3. 您控制脚本白名单 — Claude无法运行您未添加的任何操作。
如果您希望更加保守:请在同意运行之前查看Claude的每个建议。
**问:如何限制Claude Code在任务中可以执行的操作?**
在桥调用Claude Code之前,在您的环境中设置`CLAUDE_FLAGS`。以下是三个配方,从谨慎到锁定:
```bash
# 1. 仅限计划:Claude可以读取和建议,但永远不会编辑或运行任何内容
CLAUDE_FLAGS="--permission-mode plan"
# 2. 仅限编辑:允许文件编辑,阻止shell命令
CLAUDE_FLAGS="--permission-mode plan --allowedTools Edit,Write,Read,Glob,Grep"
# 3. 完全代理,作用域到一个存储库(阻止网络和系统命令)
CLAUDE_FLAGS="--allowedTools Edit,Write,Read,Glob,Grep,Bash --disallowedTools WebFetch,WebSearch"
```
在您的shell配置文件中或在桥的launchd/systemd单元文件中导出变量。参见`run_claude.sh`了解`CLAUDE_FLAGS`的消费位置。
**问:如果我的Mac崩溃或在运行过程中重启,会发生什么?**
您是安全的。桥接器会自动重新启动,它会小心不要重复任何危险的操作:
- 在崩溃发生时处于**进行中**的操作将被报告为“未完成 - 状态未知”,而不是悄悄地再次运行。因此,半完成的`git push`不会意外地触发两次。
- 已经**完成**的操作保留其结果。
## 社区与讨论
活跃于以下框架社区:
| 社区 | 主题 |
|-----------|-------|
| [AutoGen 讨论](https://github.com/microsoft/autogen/discussions/7868) | AutoGen 代理的异步本地执行 |
| [CrewAI 讨论](https://github.com/crewAIInc/crewAI/discussions) | CrewAI 生产环境安全的本地代码执行 |
| [LiteLLM 讨论](https://github.com/BerriAI/litellm/discussions/30841) | LiteLLM → Claude 代码桥接模式 |
| [LlamaIndex 讨论](https://github.com/run-llama/llama_index/discussions/22045) | LlamaIndex 本地执行器工具 |
| [Agno 讨论](https://github.com/agno-agi/agno/discussions/8486) | 多代理本地执行模式 |
| [Anthropic SDK 讨论](https://github.com/anthropics/anthropic-sdk-python/discussions/1688) | 远程代理 → 本地 Claude 代码委托 |
| [MCP 规格问题 #2925](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2925) | 有状态的异步操作模式 |
| [Hermes 代理 #47199](https://github.com/NousResearch/hermes-agent/issues/47199) | Hermes 的子进程 MCP 桥接 |
---
## 状态与贡献
**v0.5.0** — 早期的,但很稳定。核心功能可用,遇到崩溃和重启时不会重复执行风险操作,可以作为全局技能安装(只需一条命令),支持实时进度流式传输,适用于长任务,并且可以在 macOS、Linux 和 WSL2 上运行。为我自己而建,因其对他人有用而开源。查看 [CHANGELOG](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/CHANGELOG.md) 以了解完整的历史。
欢迎提交 PR — 请参阅 [CONTRIBUTING.md](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/CONTRIBUTING.md)。浏览 [开放问题](https://github.com/abhinaykrupa/cowork-to-code-bridge/issues) 以找到可以参与的内容。问题分类尽力而为。直到标记为 `v1.0.0` 之前,不算是“生产环境级别”。支持 macOS、Linux 和 WSL2;原生 Windows 暂不支持。
### 贡献者
对所有在这里贡献代码、文档或测试的人员表示巨大的感谢 🙏
[@EagleEye-0101](https://github.com/EagleEye-0101) ·
[@sureshpegadapelli84](https://github.com/sureshpegadapelli84) ·
[@ded-furby](https://github.com/ded-furby) ·
[@terminalchai](https://github.com/terminalchai) ·
[@YuuGR1337](https://github.com/YuuGR1337) ·
[@Shaan-alpha](https://github.com/Shaan-alpha) ·
[@osfv](https://github.com/osfv)
新来者?[优质首选问题](https://github.com/abhinaykrupa/cowork-to-code-bridge/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) 是最简单的切入点 — 如果你的贡献被采纳,你的用户名也会出现在这个列表中。⭐ 星标也能真正帮助其他人找到这个项目。
## 许可证
MIT — 请参阅 [LICENSE](https://github.com/abhinaykrupa/cowork-to-code-bridge/blob/main/LICENSE)。使用、fork 或分发它。
连接信息
猜你喜欢
暂无推荐服务器