给 agent 一台自己的 Mac,跑在终端里
terminal-mac 用 Apple Virtualization 在终端里跑一台真实 macOS,agent 通过 MCP 工具在虚拟机里点按、输入、开应用,不碰宿主机的指针和剪贴板。支持 Ghostty、Kitty、iTerm2 内联显示,Claude Code 用插件即可接入。
terminal-mac 是个开源项目,目标很直接:把一整台 macOS 跑进你现在的终端,给 agent 单独用。
发布者 govi 在 X 上放了两段演示。你的终端照常留着,旁边多一个虚拟 Mac,agent 在里面点按、输入、开应用,你能实时看它干活。
第二段演示里,Claude Code 在左侧终端发起操作,右侧是虚拟机里的 macOS 桌面。
怎么跑起来的
项目通过 Apple Virtualization 跑真实 macOS guest。guest 里的 helper 负责截屏和投递输入,终端查看器依赖 Ghostty、Kitty 或 iTerm2 的图形能力把画面流出来。agent 的点击、输入、滚动都走 guest,不碰你物理 Mac 的指针和剪贴板。
安装
要求 Apple silicon Mac,macOS 14 或更新。首次运行需要联网从 Apple 下载恢复镜像,或者用已有的 .ipsw。预构建版本不需要开发工具。
curl -fsSL https://github.com/govijr/terminal-mac/releases/latest/download/get.sh | bash
内联查看器支持 Ghostty、Kitty、iTerm2,其他终端可以用原生 VM 窗口和 agent CLI。
给 agent 接入 computer use
项目内置 MCP 工具,包含 screenshot、click、drag、scroll、type、key、status,还带一个 skill,教 agent 按观察、操作、验证的循环走。Claude Code 可以用插件装:
/plugin install terminal-mac --marketplace govijr/terminal-mac
其他 MCP 客户端把 terminal-mac mcp --config 的输出贴进设置即可。工具只驱动 guest helper。guest 在登录界面时,工具会明确返回状态,让 agent 请你登录。
隔离边界
虚拟 Mac 有自己的应用、文件、账户和权限,不继承你正在运行的主机应用和登录会话。宿主和 guest 之间只挂两个共享目录:control 读写请求和截图,tools 只读 helper。host home、项目目录、剪贴板、麦克风、摄像头都不挂。
helper 会检查 hw.model 是否以 VirtualMac 开头,拒绝在主机上跑。没有远程控制网络监听。默认 NAT 网络能让 guest 上网,也可能碰到主机或局域网服务。项目文档明确说,它不构成网络隔离,也不是加固的敌意代码环境,--offline 可以去掉这条网络路径。
现在的状态
early release candidate,发布包自签名,没有 Apple 公证,干净 Mac 上的 live guest acceptance 还在待办。VM 克隆、回滚检查点、accessibility 快照、完全无人值守的 guest 安装、终端分屏和 tmux transport 都还没做。首次下载 macOS 会花时间,虚拟机也照样吃主机的 CPU、内存和存储。
评论区有人开玩笑,agent got its own mac before i did。放在这个项目上不算夸张。它把 computer use 从演示视频里搬到一个可启动、可暂停、可停止的独立 macOS 实例里。对要跑 agent 的人来说,独立桌面比多一个工具调用更有用,至少它不会动你的鼠标和剪贴板。
发布时间: 2026-11-04 06:34