Enchanted

让 Claude Code、Codex、agy 和 opencode 在同一个工作台里分工。活干没干完,由门禁说了算,不由模型自己说。

macOS · Apple 芯片 · GPL-3.0 · 开发中的初版

  • 原生 CLI,真终端用你本机已登录的官方 CLI,跑在交互终端里,不走无头模式。
  • 提示词管判断,脚本管事实路径、提交号、尾注这类能核对的事交给门禁;需要判断的才交给模型和你。
  • 写审分开每次交付新开一个只读审查会话;全部检查通过才合进工作分支,不替你 push。
01 / 06

项目、任务、agent 三层

第 1 / 3 步

  1. 按项目看所有 agent

    每个项目下是“构思主控 → 执行主控 → worker、审查员、监视器”的树。项目名下面一行是分支和领先、落后的提交数。

    试试:点三角折叠一层,看父项上的状态汇总。

  2. 点项目,每张票一格

    项目视图里每张票一格,显示它在门禁里的状态和正在干活的 agent。

    试试:点 T-11 这一格。

  3. 点一张票,进入 agent 分屏

    worker 和独立审查并排,底部是这张票在门禁里的状态。还能分出一个普通终端,在里面打字不记为人工介入。

    试试:在窗格上点右键,分屏或放大。

可点击的演示需要 JavaScript。旁边的说明列出了这个演示的每一步。

演示数据全部虚构:不连后台,不调用模型。窗口按桌面尺寸缩小显示,完整操作请用电脑打开。

02 / 06

你说了才算

主控身份要你批准,agent 的提问由你回答。答复和审批都记成你的输入。

第 1 / 2 步

  1. 主控要你批准

    在项目终端里用自己的命令启动 claude、codex、agy 或 opencode,让它当主控,它会经 a2a request 申请。你批准了才算数,身份跟着这个终端,终端关了就结束。

    试试:选好“上级”,点“批准”。

  2. agent 在等你回答

    agent 用原生提问工具问你时,侧栏标黄、右上角弹通知。在界面里点选项作答,答复写回原来的终端。

    试试:选一个选项,再点“发送答复到窗格”。

可点击的演示需要 JavaScript。旁边的说明列出了这个演示的每一步。

03 / 06

一张票一条泳道

交付要过机械检查和独立审查,全过才集成。打回几次、从哪一关打回,都画在泳道上。

  1. 阶段取自门禁记录

    认领与实现、交付、机械检查、独立审查、集成。打回的次数和来源画成回线;审查是每次交付新开的只读会话。

    试试:点泳道标题收起或展开。

可点击的演示需要 JavaScript。旁边的说明列出了这个演示的每一步。

04 / 06

范围外的问题报上来

worker、审查员和监视器看到任务范围外的问题,不自己忽略,而是上报。

  1. 问题页

    标了“阻塞”的只有你能关闭;被修订作废的 attempt 留下的问题会标出来,由你确认关闭。

    试试:给这个问题写一句答复并发送。

可点击的演示需要 JavaScript。旁边的说明列出了这个演示的每一步。

05 / 06

只记你亲手做的

主控发出的提示词不算你的输入;指标从这些记录现算,算不出的写 unknown。

第 1 / 2 步

  1. 记录

    你打的字、答复和审批都记下来。直接在 worker 窗格里打字,记为人工介入。

    试试:按任务筛选。

  2. 指标

    模型使用、一次到位率与打回原因、你的注意力消耗、打分汇总。看不到的值记为 unknown,不猜。

    试试:往下看打回原因和打分。

可点击的演示需要 JavaScript。旁边的说明列出了这个演示的每一步。

06 / 06

回头看,模型不写死

复盘建议要你批准;派发用的模型和思考强度在设置里按角色改。

第 1 / 2 步

  1. 回看

    这个项目启动过的主控和会话都在,worker 上是那次交付的打分。复盘默认不定期跑。

    试试:往下批准或不采纳一条建议。

  2. 设置

    按角色设置主控派发新会话时用的模型、思考强度和 Fast。只影响之后启动的会话,取值是否有效由各家 CLI 自己判断。

    试试:切换浅色和深色。

可点击的演示需要 JavaScript。旁边的说明列出了这个演示的每一步。

下载与安装

从 GitHub Releases 下载 .zip,解压后把 Enchanted.app 拖进“应用程序”。安装包没有经过 Apple 公证,第一次打开时在 Finder 里右键选“打开”,或者在终端里解除隔离:

xattr -dr com.apple.quarantine /Applications/Enchanted.app

使用前在本机装好并登录至少一种支持的 CLI。Enchanted 不写你的 ~/.claude、~/.codex,每个会话的权限和钩子都经启动参数传入。从源码构建见工作台说明。

目前支持的 CLI

  • Claude Code、Codex、Antigravity CLI(agy)、opencode:四种都可当主控、worker 和审查员,0.1.5 已带。
  • agy 和 opencode 没有按会话的钩子,状态取自它们自己报给终端的信号,报不出来的显示“未知”;交付里的模型和思考强度记为“未知”。
  • agy 作主控时,请用 agy --dangerously-skip-permissions 启动,否则每条命令都要你在终端里确认。agy 作 worker 时同样全放开,靠门禁事后检查;它对每个新目录的信任会写进你的 ~/.gemini。

0.1.5 更新

  • 支持 agy 与 opencode:在项目终端里直接敲 agy 或 opencode 就接入,可以申请当主控,也可以被派去当 worker 和审查员。
  • 门禁在交付时核对 worktree 的 HEAD、分支、Git 配置和钩子没有被 worker 改动,改了就拒收,对所有 CLI 都生效。

升级提醒和其余改动见 0.1.5 发行说明。

已知限制

  • 只支持 macOS(Apple 芯片);CLI 只支持上面列出的四种。
  • 安装包是 ad-hoc 签名:每次换版后 macOS 会收回 Enchanted 访问“文稿”等文件夹的授权,终端里的 CLI 会停下来等系统弹窗,需要你本人允许一次。
  • 门禁约束的是互相信任的协作者,不是安全沙箱。
  • 没有做过可靠性、吞吐或成本的对照实验,本页不做这类承诺。
  • 应用内主控写的完成条件仍可能偏弱或写错;门禁会如实拒收,需要主控修卡重派。
  • “启动即失败可回收”只在模拟的启动失败上验证过。

开源协议

以 GPL-3.0 发布。工作台的部分前端组件和样式来自 Synara,按 MIT 许可使用,版权声明 “Copyright (c) 2026 T3 Tools Inc. / Copyright (c) 2026 Emanuele Di Pietro” 和完整许可保留在 workbench/LICENSE.synara。本页演示窗口的样式取自同一批文件。