Interceptor
让 AI 代理直接操控你真实使用的浏览器和 macOS 应用,无需 CDP、无需另起自动化浏览器,登录态与标签页原样保留。
证据显示分层安装(browser-only 无 TCC 权限)、MCP 破坏性动词默认拒绝、Safari 需用户手动授权、卸载/降级脚本齐全,故 least_privilege/user_confirmation/rollback 给 2;扣分点:agent 对浏览器和系统输入拥有极大权限,缺省仍可读写页面、注入事件、改写请求;secret/--browser-login 等凭据投递功能的存储与暴露面只有一句带过(sensitive_data_handling 1);依赖仅见 package. 与一个补丁,无 lockfile/审计证据(dependency_security 1);产品本质是全面控制真实浏览器与系统输入,外部副作用面极大(external_effects 1);LICENSE 标注 Hacker Valley Media 但仓库元数据为 NOASSERTION、无维护者文档(source_attribution 1)。
CI 冻结 lockfile、固定 Xcode 工具链、类型检查+测试+能力盲审计齐备,README 与 package. 版本一致(self_consistency/dependency_availability 2);扣分点:错误信息虽在 bridge-recovery 测试中显示可操作,但未覆盖全部命令面,静态评审无法确认一致性(failure_messages 2,未给满分因测试仅覆盖桥接恢复路径)。
README 明确目标用户(agent 操作者、CI 流程测试)与三平台边界(macOS 全面、Windows 仅浏览器、iOS 需开发者模式 iPhone),Safari 不支持的 API 显式降级(audience/boundaries/environment 2);扣分点:agent 直接消费不可信网页内容,提示注入防护仅有"fenced as untrusted data"一句断言,无实现证据(trigger_precision 1)。
安装文档极其详尽(分安装器对照表、逐组件落点、故障排查),给 3;架构清晰、命令命名一致、示例丰富(2);扣分点:已知限制仅零散提及(ad-hoc 签名 TCC 丢失等),无独立 Limitations 章节(known_limitations 1);无 CHANGELOG,仅见版本号 0.24.13(versioning_changelog 1);license 全文为 Elastic 2.0、清晰但元数据 NOASSERTION 且非 OSI 开源(license 2);有 CI、发布徽章与自动更新机制但无维护者承诺文档(maintenance_responsibility 2)。
输出为结构化树+diff、面向 agent 解析(output_usability 2);与 Playwright/CDP 方案有明确差异化(复用真实登录态、录制回放),边际价值成立(marginal_value 2);需自建 daemon、手动加载扩展,成本不为零但换来自动化能力(cost_benefit 2);扣分点:均为断言,未执行验证。
对照表、use-cases 文档、针对恢复逻辑与校验函数的单元测试支持主张追溯(claim_traceability 2);扣分点:对比表中对竞品的能力描述无法在仓库内核实(cross_source_corroboration 1);README 将事实与愿景基本分开,性能/覆盖类断言未夸大到无法检验的程度(fact_inference_separation 2)。
- 该工具默认赋予 agent 对真实登录态浏览器和(Full 模式下)macOS 系统输入的完全控制权,请在隔离环境评估后再决定生产使用。
- 凭据投递功能(macos secret、--browser-login、ios unlock)的存储与暴露细节文档极少,敏感凭据使用前应自行审计。
- agent 直接读取网页与网络流量,提示注入风险仅有断言性防护描述,建议对不可信页面内容保持防线。
- 许可为 Elastic License 2.0(源码可得但非 OSI 开源),托管服务场景受限;仓库元数据 NOASSERTION,合规审查需人工确认。
- 本次为静态评审(低置信度),未执行任何安装或命令,所有能力主张均来自文档与测试代码。
这个 Agent 能做什么,适合哪些场景?
Interceptor 是 Hacker-Valley-Media 开源的代理驱动控制层,由一个 interceptor CLI 统一指挥三个产品面:Browser(以 WebExtension 形式运行在真实的 Chrome/Brave/Safari 会话中)、macOS(Swift 桥接守护进程,驱动原生应用)和 iOS(通过设备端 XCUITest runner 驱动 iPhone 应用)。代理调用 CLI 命令、读取输出(元素引用 e1/e2/…、DOM 树、被动网络日志),再决定下一步动作,不强制依赖 MCP 或 API 密钥。它通过预载 userActivation 覆盖加 __interceptor_trust 事件标记,让合成点击和键盘输入通过绝大多数 isTrusted 门控;被动捕获 fetch/XHR/SSE/WebSocket 流量而无需打开 DevTools 协议。它同时内置 MCP 服务器(interceptor mcp install),Claude Code、Codex、Cursor 等客户端可通过类型化、安全门控的工具驱动全部界面。安装方式为签名的 .pkg 安装包(Browser / Full / Safari 加装包),另有 Windows 浏览器专用安装器和源码构建路径。
守护进程随首条命令自启动,CLI 经原生消息与扩展通信。Browser 界面提供 open/read/inspect/act/click/type/upload/screenshot/diff 等复合命令:interceptor open 打开页面并返回元素树加正文;act e1 点击并返回更新后的树和差异;net log 捕获被动网络流量(含完整响应体,可导出 /har/pcapng,--redact-auth 脱敏);sse log/tail 处理 SSE 流;scene 系列直接操作 Canva、Google Docs、Google Slides 的 DOM/场景图;monitor start 记录真人操作并导出可重放的 interceptor 脚本;override 可在发送前改写出站请求。macOS 界面(Full 安装包)通过 intercapt 桥接应用提供 macos tree/find/act/screenshot/listen/vision 等命令,基于辅助功能树、OS 级可信输入和端上视觉/语音/NLP。iOS 界面经网络连接设备端 XCUITest runner,提供 ios tree/click/type/screenshot/unlock、proc/eval/web 等命令。MCP 模式下以 stdio 运行 interceptor mcp serve,暴露 interceptor_browser/macos/ios/read/local/raw 工具,破坏性动词默认拒绝、需启动时显式 --allow destructive,arbitrary-exec。
- 安全测试人员需要在两个已登录浏览器配置(账号 A 与账号 B)之间做跨账号会话测试,用命名 context(--context <id>)同时驱动两个配置文件。
- 自动化工程师要抓取某个站点的 fetch/XHR/SSE/WebSocket 流量和 CSRF、认证头,用 interceptor net log --format har --redact-auth 导出分析。
- 运营或助理代理需要在 Google Docs/Slides 或 Canva 里做精确编辑,用 interceptor scene list/text/insert/slide goto 直接操作场景图而非截图识别。
- 有程教学:用户真人操作一遍网页流程,interceptor monitor 记录后 export --plan 生成可重放的语义选择器脚本。
- 使用 Claude Code、Codex 或 Cursor 的开发者通过 interceptor mcp install 一步注册,把浏览器和 macOS 控制作为 MCP 工具接入代理客户端。
- 需要在自己已解锁的 iPhone 上驱动任意应用的测试者,用 ios tree/click/type 与端上 ios eval 在一次往返里完成观察-决策-执行循环。
这个 Agent 有哪些优点和局限?
- 非 CDP 架构:复用你已登录的真实浏览器配置,Cookie、会话、标签页保持完整,站点不会看到独立自动化浏览器的痕迹。
- 被动网络捕获覆盖 fetch/XHR/SSE/WebSocket/sendBeacon/BroadcastChannel,无需打开 debugger、无 infobanner。
- 预载 userActivation 覆盖加 __interceptor_trust 标记让合成点击通过 isTrusted 门控,--os 的 CGEvent 仅作回退。
- 一个 CLI 覆盖浏览器、原生 macOS 应用和 iPhone 三个界面,且共享同一套 e1/e2 引用体系和守护进程。
- 监控-重放工作流:把真人操作导出为使用语义选择器的可重放脚本,跨标签页会话还能生成 tab switch 交接行。
- macOS Full 界面需要屏幕录制、辅助功能、Apple Events 等 TCC 授权;源码构建的 ad-hoc 签名桥在每次重建后会丢失授权,需要重新授予。
- Chrome/Brave 的扩展必须手动 Load unpacked——浏览器不允许程序化安装非商店扩展,这是核心安装包无法代劳的一步。
- 平台绑定明显:完整能力依赖 macOS(Full 需 macOS 14/15+),iOS 需要 Developer Mode 的已解锁 iPhone;Windows 仅支持浏览器界面。
- 授予代理对真实浏览器和应用的实际自治权,README 自身警告应把它当代理而非玩具脚本对待;MCP 破坏性动词需显式 --allow 才开放,误开风险由操作者承担。
- 许可证在仓库元数据中标记为 NOASSERTION,采用前需自行核实许可条款。
如何安装或部署这个 Agent?
最快路径:从 GitHub Releases 下载签名安装包并双击。选 Interceptor-Browser-<version>.pkg(推荐,无 TCC 授权,macOS 11+)或 Interceptor-Full-<version>.pkg(含 macos 界面,需屏幕录制/辅助功能/Apple Events 授权,macOS 14+),可选加装 Interceptor-Safari-<version>.pkg。Windows 有浏览器专用安装器(Windows 11 24H2+)。源码构建需 Bun 与 Brave/Chrome:git clone https://github.com/Hacker-Valley-Media/Interceptor.git && cd Interceptor && bun install && bash scripts/build.sh,然后 bash scripts/install.sh --browser-only 或 --full。Chrome/Brave 需手动在扩展页启用开发者模式并加载 /Library/Application Support/Interceptor/extension/(Load unpacked)。更新用 interceptor update,卸载用 sudo bash "/Library/Application Support/Interceptor/uninstall.sh"。
如何使用这个 Agent?
安装后打开终端运行首次验证:interceptor status 查看 mode(browser-only 或 full),interceptor open "https://example.com" 启动守护进程并返回元素树加正文;interceptor act e1 点击元素并返回更新后的树;interceptor inspect 汇总树、正文与网络日志。macOS 界面用 interceptor macos open "Finder" 和 interceptor macos act e5。MCP 接入:interceptor mcp install 自动配置检测到的 AI 客户端,重启客户端即可;interceptor mcp status 查看注册位置。多浏览器并存时用 interceptor contexts 列出 context,并用 --context safari 等指定目标。建议代理侧技能包加载 .agents/skills/interceptor-browser/、interceptor-macos/ 或 interceptor-ios/。