mcpField
P
Patchwork OS

Patchwork OS

本地服务
github.com/Oolab-labs生产力312 天前更新

关于 Patchwork OS

Patchwork OS 是面向开发者和技术运营人员的本地优先运行时与 IDE 桥接工具,可让 AI Agent 操作实际系统。它通过审批门控、策略控制和持久决策记录,为 MCP 工具及 YAML 自动化增加监督。

主要功能

  1. 01对重要操作启用审批队列
  2. 02基于策略的工具门控与紧急开关
  3. 03YAML 配方、Worker 与事件触发器
  4. 04持久且可解释的决策记录
  5. 05提供 MCP 工具与连接器的 IDE 桥接

适用场景

  1. 01要求 Agent 修改文件或服务前先获批准
  2. 02用 YAML 配方自动执行重复任务
  3. 03查明某项操作获准或被拒的原因

MCP 相关

IDE 桥接向 MCP 客户端提供编辑器诊断、导航、重构、调试、终端、GitHub 和文件操作等工具。Claude Desktop、Gemini CLI 等 MCP 客户端可通过 stdio 或 HTTP 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"patchwork-os": {
"command": "npx",
"args": [
"-y",
"patchwork-os"
]
}
}
}
启动命令npx -y patchwork-os

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmpatchwork-os

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Patchwork OS

npm beta CI npm downloads license

你遇到的不是自动化问题,而是决策问题。

每个 AI Agent 引发的可怕故事,结局都一样:有个操作无人停下来质疑。Patchwork OS 是 Agent 冲动与实际操作之间的一层——一个本地优先的运行时,让你的 AI 能在编辑器、GitHub、Slack、Gmail 和 45+ 项服务中自动化处理实际工作,同时任何会造成重大影响的操作都可以先停下来征求你的同意。

**适用对象:**已经让 Agent 操作实际系统的开发者和技术运维人员——例如会发布内容的代码仓库、重要的收件箱或生产服务;他们希望记录哪些操作获准执行,以及获准的原因。你需要会使用终端、安装 Node,并能熟练编辑 YAML。

三个理念,一个运行时:

  • **行动前先询问。**每项操作都会根据影响范围分类——能否撤销?如果出错,会造成多大影响?可撤销的操作可以直接执行。高风险操作则会进入审批队列,并附上证据:具体会执行什么、触发原因,以及出错后会有什么后果。

  • **信任靠表现赢得,绝不凭空假定。**Worker——承担特定任务的具名 Agent——一开始都受监督,并根据每种操作类型的过往表现逐步获得自主权。擅长提交问题 ≠ 获准推送代码。一次高风险操作失误的影响,可能超过一百次无关紧要的成功。你设定上限;数学规则绝不会替你提高上限。

  • **每项决策都有记录。**执行了什么、为何获准,以及结果如何——这些信息都会持久保存,可通过 patchwork judgments、仪表板的 traces 页面和 patchwork gate explain 重放并解释。你批准某项操作后,之后还能知道自己的决定是否正确。

Agent 想要写入一个文件。启用安全门后,它会暂停,并向你准确展示将要执行的操作:

审批队列:一个待处理的 createFile 调用,显示其风险级别、能否撤销以及将要写入的完整内容,并提供 Approve 和 Reject 按钮

你批准后,调用便会继续执行,前后两部分都会留下记录:

活动流显示两个事件——一个标记为 approved 的 approval_decision,以及随后执行并在 4ms 内成功的 createFile 工具调用

状态:稳定版 1.2

版本 1.2.6,已发布到 npm,标签为 latest。决策层、配方、连接器和 IDE 桥接都已可用,并且每天都在实际使用。小版本之间的接口仍可能变化,部分功能也不如其他功能完善。如果要基于它构建,请锁定确切版本。

安全功能是否启用,取决于你的安装方式。 这比本 README 中的任何其他内容都重要:

  • 全新安装: 在没有 ~/.patchwork/config.json 的机器上运行 patchwork-os init,会写入 profile: governed。从首次运行起,门控即已启用。
  • 已有安装: 升级不会更改你的配置档案。现有配置保持不变;运行 patchwork profile governed 并重启桥接即可选择启用。
  • 完全没有配置(未运行 init 就启动桥接):使用 compat 配置档案,不启用任何门控。

运行 patchwork doctor,查看当前机器上实际启用了哪些强制措施。请以其输出为准,而非此表。

功能governed(全新运行 init)compat(已有配置或无配置)
审批队列对自动触发(cron、webhook、文件监视、git-hook)和手动运行均在 high 级别启用除非指定 --approval-gate high 或 all,否则关闭;启用后也仅适用于手动运行
不可逆写入无论所属级别如何,均需请求审批遵循级别阈值
Agent 步骤受限:仅限只读工具,不允许网络或 shell默认完全访问,除非某个步骤设置了 sandbox: true
配方插件(servers:)仅加载列在 plugins.allow 中的插件加载任何条目,并在进程内运行
未注册任何内容的工具运行会停止跳过该步骤
紧急停止开关(patchwork panic)可用;状态无法读取时会拒绝操作可用;状态无法读取时允许操作
Worker 自主性提升对 Worker 拥有的配方启用(运行需要驱动程序,例如 --driver subprocess)除非设置 PATCHWORK_FLAG_WORKER_AUTONOMY=1,否则关闭(同样需要驱动程序)
遥测关闭关闭;需明确选择启用(详情)

在 compat 下,刚启动的桥接是自动化运行时;启用门控后,它才会成为决策层。上文所有关于“先停止并征求你的同意”的描述,都指门控启用时的情况。

工作循环

trigger → recipe/worker → reversible?           → runs
                        → risky, gate on        → approval queue → your yes → receipt
                        → risky, gate off       → runs
                        → forbidden by policy   → refused (no approval unlocks it)

patchwork panic 会立即阻止所有正在运行的桥接调用任何写入级别的工具。读取仍可正常进行,正在进行的推理也不会被终止——它会阻止写入,而不是完全停止运行。

安装

npm install -g patchwork-os@beta
patchwork-os init

init 会搭建 ~/.patchwork,添加仅供本地使用的配方,并在 ~/.claude/settings.json 中注册 Patchwork 的 PreToolUse 钩子。之后请重启 Claude Code——它会在会话启动时读取钩子。

前置条件: Node 22.5+。macOS、Linux 和原生 Windows(不支持 WSL)。

开始前有两点需要注意:

  • 请使用全局安装,不要使用 npx。 npx 不会保留二进制文件,因此指南中的下一条命令就会无法找到。
  • npm 包中不包含 Web 仪表板。 它是一个需要单独构建的 Next.js 应用,因此随仓库一同发布:
    git clone https://github.com/Oolab-labs/patchwork-os && cd patchwork-os/dashboard
    npm install && npm run build && npm start   # http://localhost:3200
    
    以下所有操作都可以通过 CLI 完成,无需仪表板。仪表板让审批、追踪和连接器配置更加方便,而不只是勉强可用。

首次运行:零连接器

在将任何服务接入之前,先验证运行时可正常工作。daily-status 只会访问 git 和本地文件——无需账户,也不会访问网络:

patchwork recipe run daily-status

它会读取你从昨天起的提交以及 ~/.patchwork/planned.md,并将 Markdown 摘要写入 ~/.patchwork/inbox/daily-status-<date>.md。如果该文件存在,就说明安装正常。

实用的相关命令:patchwork recipe list、patchwork status;遇到异常时可运行 patchwork recipe doctor <name>。

晨间简报:互联工作流

patchwork-os init --with-connectors   # seeds the connector-backed recipes
patchwork connect gmail
patchwork connect google-calendar
patchwork connect github
patchwork connect linear
patchwork recipe run morning-brief

此配方会提取未读邮件、今天的日历安排、你在 GitHub 上待处理的 issues 和 PR、Linear issues,以及本地 git 活动,然后让模型将它们汇总成一份 Markdown 简报,保存到 ~/.patchwork/inbox/。其中的邮件步骤是分类——它会列出需要回复的内容,但不会撰写或发送回复。除了调用你连接的服务的 API 外,其他任何内容都不会离开你的设备。

按此配置,四个连接器缺一不可——没有任何步骤设有保护条件,因此缺少一个就会导致运行中止。删除不需要的步骤,或者从 daily-status 开始,一次添加一个数据源。

需要可用的模型驱动程序(使用 --driver subprocess,并确保 Claude CLI 位于 PATH 中;或者提供 API 密钥)。patchwork recipe preflight templates/recipes/morning-brief.yaml 会准确列出运行配方前所需的条件。

两种运行方式

作为自动化运行时——配方、工作器、连接器和决策层。需要 ~/.patchwork 和模型驱动程序;编辑器可选。

patchwork start        # bridge + Claude + dashboard

patchwork start 会在桥接程序旁启动 claude --ide,因此要求 Claude CLI 位于 PATH 中。如果不需要,可以使用 patchwork start --no-dashboard,也可以通过 patchwork --workspace . 单独运行桥接程序。

全局安装 npm 后没有可启动的 dashboard/,因此程序会记录一条仪表板警告,然后继续运行桥接程序和 Claude;传入 --no-dashboard 可隐藏此警告。从仓库克隆运行时,则会启动这三者。

作为独立 IDE 桥接程序——提供 180 个 MCP 工具,让 Claude Code 能够查看和操作编辑器:诊断、LSP 导航、带风险分析的重构、调试器、终端、git/GitHub、文件操作。不需要 ~/.patchwork,不需要配方,也不需要门控。

npm install -g patchwork-os
claude-ide-bridge install-extension     # VS Code / Cursor / Windsurf / Antigravity
claude-ide-bridge --workspace .
claude --ide                            # in another terminal

通过配套插件支持 JetBrains。Claude Desktop、Gemini CLI、Codex CLI、Grok Build 和 claude.ai 可通过 stdio 或 HTTP 连接。如果你只需要桥接程序,可以一直单独使用它;运行时是在此基础上提供的可选层。

claude --ide 找不到 IDE?设置 CLAUDE_CODE_IDE_SKIP_VALID_CHECK=true(init 会为你完成此设置)。

“本地优先”意味着什么,也不意味着什么

**在你的设备上:**运行时、每个配方和工作器、所有凭据和连接器令牌、审批队列,以及 ~/.patchwork/ 下的每条日志和决策回执。不会上传任何内容,也没有任何由 Patchwork 运营的服务器参与其中。

**必然通过网络传输:**对你指定的模型(Anthropic、OpenAI、Google、xAI)以及你授权的每个连接器(Gmail、GitHub、Slack……)发起的调用。提示词以及步骤提供给模型的任何上下文都会发送给该模型提供商。选择本地 Ollama 端点也能让推理留在你的设备上;连接器调用仍会离开设备,因为这就是连接器的工作方式。

仅在你选择启用时:匿名分析。

还需了解的其他边界:runCommand 仅执行允许列表中的命令,sendHttpRequest 会阻止访问私有和环回地址段,文件工具会拒绝通过符号链接逃逸出工作区。远程部署必须置于 TLS 和 OAuth 2.0 保护之下——请参阅 docs/remote-access.md。

内容概览

  • 决策层 — 审批队列 · 按影响范围划分的操作类别 · Worker 信任度提升机制 · 紧急停止开关 · 决策记录

  • 自动化 — YAML 配方 · cron/文件/git/测试/webhook 触发器 · 事件钩子 · 多模型(Claude、GPT、Gemini、Grok、Ollama)

  • 连接器 — 45+ 个,所有写入操作均由你的策略管控:GitHub、Slack、Gmail、Calendar、Drive、Linear、Jira、Sentry、Notion、Stripe、PagerDuty、Datadog,……

  • IDE 桥接 — 180 个 MCP 工具 · VS Code 系列扩展 · JetBrains 插件 · 插件热重载(在会话期间编写工具)

  • 监督 — Web 仪表板 · 移动端推送审批(PWA)· CLI 中的暂停/判定 · 跨会话跟踪记忆

  • 部署 — 你的笔记本电脑 · 使用 OAuth 2.0 的无头 VPS(指南)· 原生 Windows

配方采用纯 YAML:由一个触发器(cron、文件保存、git 提交、测试运行或任意 webhook——iPhone Shortcut、Stream Deck、Home Assistant)和多个步骤组成。像 dotfile 一样分享、从市场安装,或让仪表板根据一句话生成配方。

Worker 是带有身份和工作记录的配方。一个负责对失败 CI 进行分类的 Worker,起初只会提出建议(“这看起来像是真正的故障——要提交一个 issue 吗?”)。确认它提交的问题确实属实后,它就能在仅限该任务的范围内获得更大的自主权。它也可能在一天之内因表现不佳而被降级。你可以用一行 YAML 永久限制任何 Worker。

为什么不选 Zapier、MCP 服务或托管助手?坦诚说明各自的取舍:documents/comparison.md。

文档

文档索引 · 平台参考 · 配方与触发器 · Worker 自主权 · 插件编写 · 架构 · Windows · ADR

遥测

默认关闭;除非你主动选择加入,否则不会发送任何数据。若选择加入:仅发送汇总计数和延迟数据,绝不发送路径、提示词、文件内容、参数或来自 ~/.patchwork/ 的任何内容。详情 与 源代码。

贡献与支持

问题 · 讨论 · CONTRIBUTING.md

⭐ 如果这为你省去了一个配置文件,或避免了一次部署失败,点个星是我唯一能知道它确实帮上忙的方式。

MIT © Oolab Labs — 许可涵盖范围 · 名称与标志

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。