NotchAgent:在 MacBook 灵动岛集中管控 AI 编程 agent
一款 macOS 原生工具,把 Claude、Codex 等 AI 编程 agent 的状态、审批与交互整合到 MacB…
NotchAgent 是一款面向 macOS 14+(Apple Silicon)的开源桌面工具,主打把 Claude、Codex 等 AI 编程 agent 的运行状态、审批请求与交互入口集中到 MacBook 屏幕刘海的「灵动岛」区域,让用户无需在多个终端面板之间切换即可查看与回应 agent。它的核心定位是 herdr 的一个配套客户端:herdr 把 15+ 主流 AI 编程 agent 抽象成统一的 JSON socket 状态模型,NotchAgent 则在此之上提供 macOS 原生的 NSPanel 界面与一组本地快捷操作。
主要功能
- 在刘海下方显示一行极简状态指示,颜色编码标识 agent 状态;悬停可见当前 agent 数量,也可固定常显。
- 当某个 agent 阻塞等待用户输入时,自动弹出对应的交互面板,让用户直接审批、选择或回复。
- 汇总所有 herdr 会话,列出状态、当前 prompt、已运行时长,并支持一键跳转回原始终端面板。
- 把支持结构化的审批与追问转成可点击的操作按钮,对不确定的输入保留「回到终端处理」的兜底通路。
- 在聚焦面板的「Mode」按钮中可切换 Claude 与 Codex 的交互模式,包括 Claude 的 Auto 模式(若可用)。
- 提供显示位置、全局热键、提示音、勿扰模式、开机自启等系统级设置,且不强制在 Dock 显示图标。
安装与运行
要求 macOS 14+、Apple Silicon 以及 Swift 6.2(Xcode 16+)工具链,且 herdr 必须先安装并运行、附带一个 terminal 客户端。安装方式有两种:
- Homebrew:
brew install --cask ykushch/tap/notchagent - 手动安装:从 GitHub Releases 下载
NotchApp-<version>.zip,解压后把NotchApp.app拖入/Applications。
由于发布包仅做了 ad-hoc 签名,未经过 Apple 公证,首次启动可能需要右键「打开」或执行 xattr -dr com.apple.quarantine /Applications/NotchApp.app 解除隔离。首次启动时还需在「系统设置 → 隐私与安全性 → 辅助功能」中授权「Notch Agent」,否则全局快捷键与 agent 操作无法生效。
命令行调试与诊断
项目同时附带一个 headless CLI 工具 notchctl,用于在不开 UI 的情况下对整套核心(客户端、状态存储、分类器与动作执行)做 dogfood 测试。常用子命令包括:
list:列出全部 agent 及其汇总状态。watch:流式输出状态变化并对阻塞事件分类。read <pane>:展示该面板当前被分类的 prompt。resolve <pane> <choice>:发送审批、拒绝或选中某个选项。reply <pane> <text...>:以自由文本回复并自动回车确认。jump <pane>:聚焦到对应终端面板。--json:输出标准化、可机器解析的诊断结果。
read --json 会返回当前面板的 provider、屏幕适配器、稳定指纹、交互类型与内容、选项、呈现状态、置信度、修订号以及所有候选响应方案;同一证据在排序后输出字节级一致的 JSON。原始终端字节不会直接包含在输出中,需要调用 capture 获取原始证据、inspect 比对标准化诊断。dry-run <pane> <intent> 会读取一次后立即重读同一面板,比对指纹后基于最新呈现做规划,但不发送任何输入。
项目工程化
仓库使用 SwiftPM 构建,GitHub Actions 会在 macOS 15 + Xcode 16.4 环境下对每次 push 与 PR 跑编译与测试。推送带数字版本号(形如 v1.2.3)的 tag 后,CI 会构建 NotchApp-<version>.zip、校验签名与压缩包哈希、生成 release notes 并同步更新 Homebrew tap。完成发布只需配置一个名为 HOMEBREW_TAP_TOKEN 的 fine-grained PAT,限定到 ykushch/homebrew-tap 仓库的 Contents 读写权限即可。
整体来看,NotchAgent 是一个面向重度 AI 编程 agent 用户的小巧 macOS 辅助工具,受众局限于同时使用 herdr 与 Apple Silicon MacBook 的开发者,对更广泛的 AI 行业影响有限。
