ByteNoteByteNote
给 agent 一个隔离的 Mac:虚拟机加终端查看器
字

字节笔记本

2026年11月4日 · 约 4 分钟读完

给 agent 一个隔离的 Mac:虚拟机加终端查看器

API中转
¥120

Computer-use agent 越来越多,但「让 agent 操作你的电脑」始终有一个安全和隐私的死结:agent 要操控桌面,就必须跑在你的真实系统里。terminal-mac 给出了另一条路,用 Apple Virtualization 起一个隔离的 macOS 虚拟机,让 agent 在里面折腾,你在终端里看和控。仓库 govijr/terminal-mac,11 月 3 日创建一天冲到 1,294 星,MIT 协议,Swift 写的。

terminal-mac 仓库:隔离 macOS 桌面给 agent 用

一、架构:虚拟机里的独立 Mac

Apple Virtualization 框架跑一个真正的 macOS 客户系统。一个打包在客户系统内部的 helper 进程负责捕获屏幕和发送输入事件。终端查看器用 Kitty、Ghostty 或 iTerm2 的图形协议把客户系统画面流式渲染到终端里。agent 命令通过同一个 helper 发送,不碰物理 Mac 的鼠标指针和剪贴板。

客户系统是一台完全独立的 Mac:有自己的应用、文件、账号和权限设置。不继承宿主机正在运行的应用和已登录的会话。VM 会消耗宿主机的 CPU、内存和存储。

二、Agent 怎么用

它给 agent 提供 MCP 工具(screenshot、click、drag、scroll、type、key、status)和一个 skill,教 agent 走 observe → act → verify 循环。Claude Code 一行命令就能装:

/plugin install terminal-mac --marketplace govijr/terminal-mac

安装一条 curl 加管道 bash 命令,自动下载 macOS 恢复镜像、创建虚拟机、启动并检查客户 helper。之后的运行复用已有 VM。系统要求 Apple Silicon Mac、macOS 14 或更高,终端需要 Ghostty、Kitty 或 iTerm2;不支持的终端会退回原生 VM 窗口加 agent CLI。

三、为什么不用 agent-desktop 或其他方案

本站写过 vercel-labs/agent-desktop,它通过无障碍树读 UI 结构并直接操作,这个路线的局限是无障碍支持质量:自绘 UI 和游戏够不着。terminal-mac 走的是虚拟机路线,agent 看到的是一台完整的 Mac 屏幕,什么应用都能操作,但代价是需要 Apple Silicon 硬件和 64GB 的 VM 磁盘空间。

两条路线的取舍很清晰:agent-desktop 稳定、轻量、可验证,但只覆盖无障碍树可达的应用;terminal-mac 全覆盖但重、需要专门硬件、速度取决于 VM 性能。对你的工作流来说,它们可以叠着用:日常文件操作走 agent-desktop,浏览器或自绘 UI 走 terminal-mac 的虚拟机。

四、冷水:四条都得泼

一,早期 release candidate,未过 Apple 公证,纯净 Mac 上的完整接受测试还在进行中。二,需要 64GB 的 VM 磁盘空间和 Apple Silicon 硬件,不是每台 Mac 都能跑。三,tmux passthrough 和自动终端分屏尚未实现。四,虚拟机内的 macOS 是从苹果恢复镜像下载的,首次运行需要联网。

五、判断

这个项目的价值在于把 computer-use agent 的安全边界从「信任软件」变成了「信任虚拟机」:agent 在虚拟机里折腾,搞坏了重置虚拟机就行,你的真实系统和数据完全不受影响。对经常跑 computer-use agent 的开发者来说,这可能是目前最省心的隔离方案。

来源:github.com/govijr/terminal-mac(第一手,README 全文已读,2026-11-04 直读)。

相关文章

分享: