Calyx
原生 macOS 终端,让你并行运行和监督 Claude Code、Codex 等编码代理,用一个审批收件箱替代逐个盯终端标签。
- Star 数
- ★ 347
- 最近更新
- 1 天前
- License
- MIT
- 主语言
- Swift
- FA 评分
- 59/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用Codex · Claude Code
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 同时跑三个 Claude Code 实例的开发者,希望在一个审批收件箱里处理所有权限请求,而不是逐个切换终端标签
- 不适合
- 仍在使用 macOS 15 或更早版本、或非 Apple Silicon 设备的用户
- 需要提交外部 Pull Request 参与开发的贡献者
- 希望完全离线、不依赖任何云端模型服务的团队
- 源码审查
- 59/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
Calyx 是一款基于 Ghostty v1.3.1(libghostty,Metal GPU 渲染)构建的 macOS 26 原生终端应用,用于并行运行和监督多种编码代理 CLI(Claude Code、Codex、OpenCode、Hermes、Grok、pi)。它通过代理侧边栏实时显示每个代理的状态,并提供统一的审批收件箱,以通知面板形式处理 Claude Code 与 Codex 的权限请求以及 Grok、pi 的工具调用。内置 Git 侧边栏支持查看变更、提交图和逐行 diff 评论,并可将完整评审直接提交给代理面板。应用内置 MCP 服务器,向代理暴露面板控制、命令日志、LSP 语言服务特性和跨面板 IPC 消息传递,同时附带 25 条 calyx browser 浏览器自动化 CLI 命令。架构上使用 Swift 6.2、AppKit 与 SwiftUI(经 NSHostingView 桥接),支持 Homebrew 安装和 Sparkle 自动更新。
Calyx 通过 libghostty 的 C API(经 GhosttyFFI 枚举调用)驱动 Metal 加速的终端渲染,支持标签组、分屏和 Cmd+Shift+P 命令面板,读取 ~/.config/ghostty/config 并热重载。安装后它会向已检测到的代理 CLI 写入 MCP/hook 配置(如 ~/.claude.json、~/.codex/config.toml、~/.config/opencode/opencode.、~/.hermes/config.yaml、~/.grok/config.toml,pi 则写入 ~/.pi/agent/extensions/calyx.ts),使各代理实例注册为对等节点,可调用 register_peer、list_peers、send_message、broadcast、receive_messages、get_peer_status 等工具互发消息。同一 MCP 服务器还提供面板操作工具(pane_list、pane_split、tab_create,以及需审批的 pane_run、pane_send_keys)、命令日志工具(terminal_list_commands、terminal_read_output、terminal_await_command,输出前会脱敏令牌、密码、API 密钥等已知秘密模式)和 LSP 代理工具(lsp_hover、lsp_definition、lsp_references、lsp_rename、lsp_diagnostics)。审批收件箱在屏幕右上角以通知面板集中展示权限请求,支持主操作加 Options 下拉选择,或将请求退回 CLI 原生确认。可选的守护进程式持久会话可在应用退出或崩溃后恢复,calyx-session 部署到 SSH 主机后还能浏览和重连远程会话。
- 同时跑三个 Claude Code 实例的开发者,希望在一个审批收件箱里处理所有权限请求,而不是逐个切换终端标签
- 需要并行调度 Claude Code、Codex 和 OpenCode 的工程师,想在侧边栏一眼看出哪个代理在等待、哪个已完成
- 希望在代理完成的代码改动上逐行写评论并把完整评审直接发给代理面板的代码审查者
- 让多个代理实例互相协调任务的团队:通过内置 MCP 的 IPC 消息传递发现对等节点、广播消息、等待命令完成
- 需要会话在应用崩溃或退出后仍存活的远程工作者:启用持久会话,或把 calyx-session 部署到 SSH 主机后重连远程会话
- 想让代理具备语言服务器感知能力的用户:代理调用 lsp_definition、lsp_diagnostics 等工具获得 TypeScript、Python、Rust 等语言的精确符号信息
如何安装或部署这个 Agent?
方式一(Homebrew):brew install --cask yuuichieguchi/calyx/calyx。方式二(手动):从 GitHub Releases 下载 Calyx.zip,解压后将 Calyx.app 拖入 /Applications。要求 macOS 26 Tahoe 或更高版本;手动安装通过 Sparkle 更新,Homebrew 安装通过 brew upgrade 更新。从源码构建需要:macOS 26+、Xcode 26+、与 ghostty 的 build.zig.zon 匹配的 Zig、XcodeGen(brew install xcodegen)。构建步骤:git clone --recursive https://github.com/yuuichieguchi/Calyx.git && cd Calyx && cd ghostty && zig build -Demit-xcframework=true -Dxcframework-target=native && cd .. && cp -R ghostty/macos/GhosttyKit.xcframework . && xcodegen generate && xcodebuild -project Calyx.xcodeproj -scheme Calyx -configuration Debug build。
如何使用这个 Agent?
启动 Calyx 后在任意面板启动代理 CLI(Claude Code、Codex 等)。打开命令面板(Cmd+Shift+P)运行 Enable AI Agent IPC 启用内置 MCP 服务器(配置自动写入各 CLI 的配置文件,需重启已运行的代理实例);如后来安装了新代理,运行 Reconfigure AI Agent IPC。代理侧通过 calyx-ipc MCP 服务器调用 register_peer、send_message、pane_list、terminal_read_output 等工具;命令面板运行 Install CLI to PATH 可把 calyx CLI 装入 PATH,之后可在任意终端用 calyx browser snapshot/click/fill/eval/screenshot 等 25 条命令控制浏览器标签(浏览器服务器自动启动并监听 localhost:41840)。审批集成需在 Settings 中显式开启,未经单独授权不会自动批准任何请求。常用快捷键:Cmd+T 新标签、Cmd+D 向右分屏、Cmd+F 搜索、Cmd+Shift+U 跳到最近的未读通知标签。
这个 Agent 有哪些优点和局限?
- 统一的审批收件箱把多个面板的 Claude Code/Codex 权限请求集中到右上角通知面板,比逐个盯终端标签显著减少切换成本
- 不止是终端:内置 MCP 服务器同时提供跨面板代理 IPC、命令日志(含秘密脱敏)、LSP 代理和 25 条浏览器自动化命令,代理可感知面板、输出和符号信息
- 基于 libghostty(Ghostty v1.3.1)的 Metal GPU 渲染,兼容 ~/.config/ghostty/config 并支持热重载,Ghostty 用户可平滑迁移
- 守护进程式持久会话可在崩溃后恢复,配合 calyx-session 支持远程 SSH 会话重连和代理对话续接
- 硬性要求 macOS 26 Tahoe 或更高版本,旧版 macOS 和其他操作系统无法使用
- 部分能力依赖各代理 CLI 自身的报告机制:例如子代理行仅在 CLI 上报时出现(Codex/OpenCode 只报生命周期不报当前工具),pi 在集成关闭时工具调用不经审批即执行
- 需要 zsh/fish shell 集成才能使用 terminal_list_commands 等命令日志工具;子代理行只对 Calyx 安装 hooks 之后启动的会话生效
- 从源码构建门槛较高:需要 Xcode 26+、匹配版本的 Zig 和 XcodeGen,且要手动构建 libghostty xcframework
- 不接受外部 Pull Request,贡献方式仅限于 issue 报告
这个 Agent 与同类方案有什么区别?
README 明确提到其浏览器自动化(25 条 calyx browser 命令)与 cmux 的浏览器自动化类似,可作为同类工具参照。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Calyx 当前 | 59 · 缺口较多 | 桌面应用免费 | ★ 347 | 1 天前 | Swift | Codex · Claude Code |
| Claudexor | 76 · 表现良好 | 命令行工具免费 + 模型费 | ★ 518 | 今天 | TypeScript | Codex · Claude Code |
| Plannotator | 78 · 表现良好 | 命令行工具免费版 + 付费版 | ★ 9.6k | 今天 | TypeScript | Codex · Claude Code |
| ECC 工程智能体工作台 | 66 · 存在缺口 | Agent 插件 / 技能免费版 + 付费版 | ★ 288k | 4 天前 | JavaScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
正面:审批收件箱为显式选择性启用,cockpit 危险工具(pane_run、pane_send_keys、palette_execute)保持审批门控,命令日志在暴露给代理前对已知密钥模式做脱敏,浏览器标签限于 http/https 且阻止弹窗;这些在 README 中有具体、一致的描述。扣分:启用 IPC 后会自动写入 ~/.claude.、~/.codex/config.toml、~/.grok/config.toml 等多个用户配置文件并向 ~/.pi 写入自动加载的扩展,属于大范围的外部副作用;浏览器服务器默认随应用启动监听 localhost:41840;Grok/pi 集成关闭时其工具调用不经审查即运行;Rollback(禁用 IPC 后配置文件是否还原、钩子如何移除)未见说明;仅见 Ghostty v1.3.1 一个版本号,无依赖安全审计或 SBOM 证据;发布者未经核实且不接受外部 PR,归因主要靠 Acknowledgements。未发现恶意行为或隐蔽外传的证据。
正面:README 对各 CLI 的能力差异描述前后一致,receive_messages 的删除语义、output_pending 的处理等边界行为均有交代。扣分:仅凭 README 无法验证错误消息质量;构建依赖精确匹配 ghostty 的 Zig 版本,脆弱性高;未运行测试,也无法确认失败路径。
正面:明确面向需要在并行终端中监督多个编码代理的 macOS 高级用户,逐 CLI(Claude Code、Codex、OpenCode、Hermes、Grok、pi)说明支持与不支持的能力,触发条件(会话启动时读取钩子、herdr 通过观察而非轮询发现)描述精确。扣分:硬性要求 macOS 26 Tahoe 且 Xcode 26,受众面窄;未提供降级路径。
正面:README 结构清晰(Why → Features → 快捷键 → IPC → 构建 → 限制 → 许可),安装说明(Homebrew cask、手动下载、源码构建步骤完整)、MIT 许可文件齐全、已知限制诚实具体(全角文本光标偏移、被覆盖的配置键)。扣分:证据中未见 CHANGELOG 或版本历史文件;维护者单一、明确拒绝外部 PR,长期维护与更新路径依赖个人,属减分项。
正面:把多个代理的审批、状态、命令输出聚合到一个控制面,并让代理可通过 MCP 读取结构化命令历史,边际价值明显区别于普通终端。扣分:安装链路较重(macOS 26、需要逐代理集成、可选守护进程),收益需要用户已实际并行运行多个代理才能兑现,成本收益权衡在证据中未量化。
正面:README 的具体声明(工具名、快捷键、文件路径、端口、CLI 命令示例)具体到可复核,事实与演示视频、外链分开呈现。扣分:外部文档站、Homebrew cask、发布产物均不在本次证据内,无法交叉印证;演示视频与功能声明无法静态验证。
- 启用 AI Agent IPC 会自动改写多个用户级配置文件(~/.claude.、~/.codex/config.toml、~/.grok/config.toml 等)并向 ~/.pi 写入自动加载的扩展,使用前请备份,并确认禁用后这些改动是否被还原。
- Grok 的 always-approve 模式和 pi 的所有工具调用在集成关闭时将不经任何审查直接运行,请确认默认状态下这些代理未被接入。
- 浏览器服务器随应用自动启动并监听 localhost:41840,浏览器 eval/fill 等命令无需启用步骤即可使用,注意本地任意进程能否访问该端口。
- 发布者未经核实且不接受外部 PR,更新只能依赖作者与 Sparkle/Homebrew 渠道,企业环境建议自行审计后再部署。
- 要求 macOS 26 Tahoe,属非常新的系统版本,生产环境采用前请评估系统成熟度。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.50.1 Calyx v0.50.1
发布说明摘录
What's Changed Ghostty built-in themes - Calyx now bundles the 463 built-in themes pinned by Ghostty 1.3.1, so theme = <name> in ~/.config/ghostty/config resolves. Previously every built-in theme name was silently ignored. Light/dark themes follow the system appearance (#56) - theme = light:A,dark:B now switches when macOS changes between Light and Dark, in every open pane and in the window chrome. - A config reload applies the variant that matches the current appearance. Session restore …在 GitHub 查看 ↗ -
v0.50.0 Calyx v0.50.0
发布说明摘录
What's Changed Click a notification to jump to its pane - Clicking a Calyx notification now focuses the pane that sent it. Calyx switches to that pane's tab group and tab, closes Mission Map if it is open, restores a minimized window, and brings the window to the front. (#54) - Notifications from a pane are removed from Notification Center once you read its tab (when the unread badge clears), when the pane closes, and when Calyx quits. Pane title as the notification subtitle …在 GitHub 查看 ↗ -
v0.49.1 Calyx v0.49.1
发布说明摘录
What's Changed Diff viewer <img width="1381" height="865" alt="スクリーンショット 2026-10-20 8 54 24" src="https://github.com/user-attachments/assets/dbe662fd-9196-4a99-b15a-4f2c8232d6a7" /> - Right-click or Control-click in the diff body opens a Copy / Select All menu again, and the pointer is an I-beam over text again. 0.49.0 lost both when the diff body moved to a custom-drawn view. - If you right-click outside the current selection, the word under the pointer is selected first, as in standard macOS text views. …在 GitHub 查看 ↗