PatchWarden

August 29, 2026 · View on GitHub

English · 简体中文

最新版本 Node.js >= 20 Windows x64 License: MIT

让 ChatGPT 规划,本地 Agent 执行,但别把整台电脑直接交给它。

PatchWarden 把 ChatGPT 和 Codex CLI、Claude Code、OpenCode 等本地 Agent 连起来,只在你批准的工作区和验证边界内执行,并留下可检查的 Diff、验证和审计证据。

它不是通用远程 Shell,而是一条 受控、可验证、可审计的 Agent 执行通道

下载最新 Windows 版本 · 快速开始 · 连接 ChatGPT · 安全边界

PatchWarden workflow demo

真实工作流演示。敏感信息已遮挡。

为什么需要 PatchWarden

直接让远程 AI 控制本地开发环境,最难的不是“能不能执行”,而是:

  • 它到底能访问哪些目录?
  • 能不能随便跑命令?
  • Agent 说“测试通过”时,有没有独立证据?
  • 改了哪些文件,是否超出批准范围?
  • 最终是谁、基于什么证据接受了这次修改?

PatchWarden 把这些问题放进执行链路本身:

ChatGPT
   ↓  任务 + 约束
PatchWarden
   ↓  工作区 / Agent / 命令边界
Local coding agent

Workspace changes

Verification + diff + audit + lineage

Human acceptance

你能得到什么

  • 工作区边界:任务只能在配置的 workspaceRoot 内运行。
  • Agent 边界:只调用你本机已经安装并配置好的 Agent。
  • 命令边界:验证命令必须匹配允许列表。
  • 真实 Diff:不只相信 Agent 的自然语言总结。
  • 独立验证:验证步骤和任务执行分开记录。
  • 审计记录:保留 request / task / lineage / audit 状态。
  • 人工验收:最终接受动作绑定到当前证据,而不是简单改一个 JSON 状态。

适合谁

如果你想:

  • 在 ChatGPT 里规划和监督本地开发任务;
  • 继续使用 Codex CLI / Claude Code / OpenCode 作为真正执行者;
  • 又不想给远程模型一个无限制 Shell;
  • 希望每次修改都有可复查证据;

PatchWarden 就是为这种工作流做的。

5 分钟快速上手

1. 下载

Latest Release 下载 Windows x64 安装版或便携版。

当前安装包若未代码签名,Windows SmartScreen 可能提示未知发布者。请先用同一 Release 中的 SHA-256 校验文件核对安装包。

PowerShell:

Get-FileHash .\PatchWarden-Setup-*-x64.exe -Algorithm SHA256

2. 准备本地 Agent

至少安装并登录一个:

  • Codex CLI
  • Claude Code
  • OpenCode

从源码或 npm 运行时需要 Node.js 20+;建议同时安装 Git 以生成可靠 Diff。

3. 选一个专用工作区

不要把磁盘根目录、用户主目录、桌面、下载目录直接作为 workspaceRoot

建议给 PatchWarden 一个专门的项目目录,只放你明确允许它操作的仓库。

4. 检测 Agent

打开 PatchWarden Desktop:

设置 → 本地 Agent 与模型

至少一个 Agent 应显示可调用。如果 CLI 尚未登录,先在独立终端完成登录,再回到 PatchWarden 重新检测。

5. 确认本地健康状态

开始使用 / 高级控制台 中确认工作区、Agent 和 Core 服务正常。

到这里,即使还没连接 ChatGPT,PatchWarden 的本地执行边界也已经可以先单独验证。

连接 ChatGPT

ChatGPT Web 需要通过当前 OpenAI 支持的安全 MCP Tunnel / custom app 连接方式访问本地 PatchWarden。

典型流程:

  1. 准备 tunnel-client
  2. 创建名为 PatchWarden 的专用 Core Tunnel;
  3. 使用具备 Tunnels Read + Use 权限的专用 runtime key;
  4. 在 PatchWarden 的 设置 → MCP 与隧道 中配置并验证;
  5. 在 ChatGPT Developer mode 中添加 PatchWarden,Authentication 选 No Auth
  6. 保留适合你工作区风险等级的确认策略。

连接时请保持这些边界:

  • 这个 runtime key 对应 CONTROL_PLANE_API_KEY,不是普通 OPENAI_API_KEY
  • OPENAI_ADMIN_KEY 可以用于管理 Tunnel,但不应作为长期运行密钥;
  • 不要把 runtime key 填进 ChatGPT 的 Authentication 字段;
  • Direct 是可选的第二 Tunnel,只有需要 Direct 工具时才创建;
  • Direct 不是只读通道。它提供受工作区边界、敏感路径和确认策略约束的文件编辑能力(包括补丁、创建、移动和删除);只有明确需要时才启用,并保留人工确认;
  • 如果直接启用本地 HTTP MCP(不经过 stdio Tunnel),必须先配置 PATCHWARDEN_OWNER_TOKEN。匿名 /healthz 只返回最小状态,详细 health 与 /mcp 都要求 owner token。

Tunnel runtime key 是运行连接所需的本地秘密,不要写进 README、Prompt、截图或 Git 仓库。

连接完成后,先做只读检查:

请调用 PatchWarden:
1. health_check
2. list_agents

只返回服务状态和可调用 Agent,不修改任何文件。

第一个可审计任务

建议第一次只在可丢弃的 Demo 仓库中测试:

请通过 PatchWarden 执行一次受控任务:
- 只在我指定的 Demo 工作区内工作;
- 使用 invocation_ready=true 的本地 Agent;
- 只修改我明确允许的文件;
- 只运行项目中真实存在且已允许的验证命令;
- 禁止 commit、push、tag、publish、release、deploy;
- 最后返回 Diff、verification、audit 和 lineage 状态。

不要只看 Agent 说“完成了”

一次可靠的任务结果至少应该能回答:

证据你要确认什么
task_id / lineage_id这次工作能否唯一追踪
changed files是否只改了批准范围
verification真实验证命令是否通过
out-of-scope changes是否为 0
audit独立审计是否接受
local attestation是否用 patchwarden-attest 对当前证据做了人工验收
final lineage整条工作流是否完整结束

审计通过后,任务通常仍是 ready_for_review。权威验收需要在本地 TTY 执行:

patchwarden-attest <task_id> --accept

PatchWarden 的目标不是让 Agent “更会说自己做对了”,而是让你能检查它到底做了什么。

安全边界

PatchWarden 的核心原则:能力最小化 + 证据优先

  • 工作区必须显式配置;
  • 不把任意本机路径默认暴露给远程模型;
  • 验证命令受允许列表限制;
  • Direct 是可选的受限编辑能力,不是只读验证通道;它应保持更严格的工作区边界、敏感路径和确认策略,未启用时不要在提示词里引用它;
  • 本地 HTTP MCP 的敏感接口要求 owner token;
  • 本地 HTTP MCP 的详细 health 与 /mcp 都要求 PATCHWARDEN_OWNER_TOKEN
  • 日志、截图和诊断不应暴露 API Key / Tunnel ID /账号秘密;
  • 最终人工 attestation 绑定当前证据摘要,而不是只相信任务目录里的状态文件;
  • 对高风险操作,应继续保留人工确认。

PatchWarden 不是什么

  • 不是通用远程桌面;
  • 不是无限制远程 Shell;
  • 不替代 Codex / Claude Code / OpenCode;
  • 不把所有本地文件自动暴露给 ChatGPT;
  • 不把 Agent 的自然语言“测试通过”当成最终证据;
  • 不应该用来绕过你原本的本地安全策略。

支持的工作流

PatchWarden 当前重点围绕:

Plan in ChatGPT

Execute with a local coding agent

Verify independently

Audit actual changes

Accept with evidence

它更适合“我已经知道要做什么,现在需要一个受控执行层”,而不是替代完整的需求分析或产品决策流程。

常见排障

Agent 检测到了但不可调用

在独立终端直接运行对应 CLI,先完成登录和基础模型配置,再回到 PatchWarden 重新检测。

Watcher / Core 状态异常

先通过高级控制台执行正常的启动/重启流程。不要直接强杀未知 PID。

ChatGPT 无法连接

先确认本地 PatchWarden 健康,再检查 Tunnel 是否连接到正确 profile,以及 ChatGPT 侧是否使用了当前支持的 MCP/custom app 连接方式。

验证命令被拒绝

检查它是否真的存在于项目中,并且是否匹配 PatchWarden 的允许命令配置。不要为了让任务通过而临时放宽为任意 Shell。

开发与审计理念

PatchWarden 更关心这些问题:

  • 执行权属于谁?
  • 工作区边界在哪里?
  • 结果能不能独立验证?
  • 证据是否能追溯到这一次具体任务?
  • 人工最终接受是否绑定到当前证据?

如果这些边界比“少一次确认”更重要,这个项目就有价值。

License

MIT. See LICENSE.


PatchWarden is an independent open-source project and is not affiliated with or endorsed by OpenAI, Anthropic, or OpenCode.