资讯动态

如何在 Lume macOS Tahoe 虚拟机内安装 Cua Driver 并把智能体连到虚拟机桌面?

发布时间:2026/9/14 23:13:33 来源:尧图企业网站定制
如何在 Lume macOS Tahoe 虚拟机内安装 Cua Driver 并把智能体连到虚拟机桌面【免费下载链接】cuaScale computer-use 2.0 with open-source drivers, cross-OS fleets, and benchmarks for training, evaluation, and data generation.项目地址: https://gitcode.com/GitHub_Trending/cua/cua在 Apple Silicon Mac 上如果你想让 computer-use 智能体操作一个可丢弃的桌面而不是宿主机的桌面可以拉取 Cua 发布的macos-tahoe-cua:26.5.2Lume 镜像在虚拟机内安装 Cua Driver、完成 macOS 授权再把智能体接到这个虚拟机桌面。这条路径的结果是Cua Driver 的截图、输入和录制都挂在虚拟机的 macOS 身份下宿主机不受影响。适用前提一台 Apple Silicon Mac已安装 Lume要求 macOS 13.0 或更高、至少 8GB 内存宿主机上可用jq并且能访问虚拟机显示画面来处理首次运行的 macOS 授权弹窗。Lume 的安装方式见 Install and run Lume/bin/bash -c $(curl -fsSL https://cua.ai/lume/install.sh) lume --version注意两点边界发布镜像默认SIP 已禁用但禁用 SIP 并不会自动授予 Accessibility、Screen Recording、Automation 和 direct-capture 权限这些仍要在你的私有虚拟机里逐项批准另外为可重复的工作请使用带版本号的镜像 taglatest只留给实验。拉取并启动 Tahoe 虚拟机在宿主机上执行lume run需要保持前台运行IMAGEmacos-tahoe-cua:26.5.2 VMcua-driver-dev-26.5.2 lume pull $IMAGE $VM lume run $VM虚拟机启动后显示画面会自动以lume用户登录初始用户名和密码都是lume。接下来在虚拟机内的 Terminal 检查基础环境sw_vers csrutil status xcode-select -p xcrun swiftc --version文档给出的26.5.2镜像应有的报告值macOS 26.5.2build 25F84System Integrity Protection status: disabled.开发者目录指向/Library/Developer/CommandLineTools。如果这些值与上面不同停止操作重新拉取带版本号的镜像不要去修补一个来路不明的基础环境。在虚拟机内安装 Cua Driver在虚拟机显示画面的 Terminal 中运行官方发布安装器/bin/bash -c $(curl -fsSL https://cua.ai/driver/install.sh)安装完成后验证应用和 CLI 都已就位文档固定路径应用位于/Applications/CuaDriver.appCLI 位于/Users/lume/.local/bin/cua-driver/Users/lume/.local/bin/cua-driver --version /Users/lume/.local/bin/cua-driver doctor逐项完成 macOS 授权授权分四类必须在虚拟机的前台会话里完成因为 agent 和 daemon 的工具调用是只读的无法弹出 macOS 权限 UI。1. 请求应用级的 Accessibility 和 Screen Recording 授权/Users/lume/.local/bin/cua-driver permissions grant对 CuaDriver 的两个请求都选择允许。2. 触发 AutomationSystem Events 控制请求/Users/lume/.local/bin/cua-driver list_apps {}macOS 询问 CuaDriver 是否可控制 System Events 时选择Allow。3. 触发 Tahoe 的 direct-capture 请求无系统选择器地捕获屏幕和音频。这条权限需要一次真实的桌面捕获来触发DRIVER/Users/lume/.local/bin/cua-driver $DRIVER call get_desktop_state {} \ /tmp/cua-driver-desktop-state.json在 direct-capture 弹窗上选择Allow然后用下面的脚本确认捕获返回了 PNG/usr/bin/python3 - PY import json with open(/tmp/cua-driver-desktop-state.json) as source: state json.load(source) assert state[screenshot_mime_type] image/png assert state[screenshot_width] 0 assert state[screenshot_height] 0 assert state[screenshot_png_b64] PY最后重跑一遍list_apps和捕获命令它们必须在不再弹出任何授权窗口的情况下完成这表示四类权限都已落位。验证 driver 持有的授权状态查询运行中的 daemon而不是 Terminal 自己的权限状态/Users/lume/.local/bin/cua-driver permissions status --json \ /tmp/cua-driver-permissions.json /usr/bin/python3 - PY import json with open(/tmp/cua-driver-permissions.json) as source: status json.load(source) assert status[accessibility] is True assert status[screen_recording] is True assert status[screen_recording_capturable] is None assert status[direct_capture_status] not_checked assert status[source][attribution] driver-daemon PY其中attribution为driver-daemon很关键它说明状态读自应用自己的 daemon权限归属在 CuaDriver 而不是终端进程。接着从虚拟机的交互式 Terminal 运行一次人工持有的权限设置命令并验证 accessibility 与捕获两条路径都能无提示通过/Users/lume/.local/bin/cua-driver permissions grant /Users/lume/.local/bin/cua-driver permissions status --json \ /tmp/cua-driver-permissions-live.json /usr/bin/python3 - PY import json with open(/tmp/cua-driver-permissions-live.json) as source: status json.load(source) assert status[screen_recording_capturable] is None assert status[direct_capture_status] not_checked assert status[direct_capture_verification][source] permissions_grant assert status[direct_capture_verification][verified_at].endswith(Z) assert status[direct_capture_verification][bundle_id] com.trycua.driver PY /Users/lume/.local/bin/cua-driver call get_accessibility_tree {} /Users/lume/.local/bin/cua-driver call get_desktop_state {} \ /tmp/cua-driver-desktop-state-second.json成功条件以上命令全部成功且没有打开 System Settings 或新的授权对话框。bundle_id为com.trycua.driver与当前发布版本一致。把智能体连到虚拟机桌面有两条路径取决于智能体跑在哪里。路径一智能体跑在虚拟机内部当智能体需要直接操作虚拟机桌面时使用这条。在虚拟机内生成你客户端对应的注册命令/Users/lume/.local/bin/cua-driver mcp-config --client codex /Users/lume/.local/bin/cua-driver mcp-config --client claude按打印出的命令注册然后重启客户端。其他受支持客户端的注册方式见 Connect your agent to Cua Driver。如果要用本地模型让 Cua Driver 留在 guest 内、通过生成的 MCP 命令连接模型 harness 即可Run a local model with Cua Driver 给出了经过验证的 Muse Glimmer Claude Code 配置。驱动进程留在 guest 内的好处是截图、输入和录制仍然挂在 guest 的 macOS 身份上。路径二智能体跑在宿主机通过 SSH 暴露 guest 的 MCP 进程先把宿主机的公钥只复制公钥写入 guestVM_IP$(lume get $VM --format json | jq -r .[0].ipAddress) cat ~/.ssh/id_ed25519.pub | \ ssh lume${VM_IP} \ umask 077; mkdir -p ~/.ssh; cat ~/.ssh/authorized_keys首次会提示输入lume的初始密码。然后验证非交互 SSH 能到达应用持有的 daemonssh -T -o BatchModeyes lume${VM_IP} \ /Users/lume/.local/bin/cua-driver permissions status --json最后把这条 SSH 命令注册为 Codex 的 stdio MCP server$VM、$VM_IP沿用前面定义的变量codex mcp add cua-driver-vm -- \ ssh -T -o BatchModeyes lume${VM_IP} \ /Users/lume/.local/bin/cua-driver mcp远端 CLI 会代理到已登录 guest 会话里的 CuaDriver daemon因此 daemon 保留了应用的 macOS 权限身份。保存一个可复用的私有虚拟机初始化和授权都完成后可以克隆一份备用。顺序是关闭应用 → 停止虚拟机 → 在停止状态下克隆lume stop $VM lume clone $VM ${VM}-backup lume ls私有虚拟机保持在本地即可。克隆前不要往里面加入 registry token、源码托管凭据、维护者的 SSH 私钥或个人文件。常见问题权限状态显示为unknown。用 LaunchServices 拉起 CuaDriver 再查询一次open -n -g -a CuaDriver --args serve cua-driver permissions status --jsonunknown的含义是没有应用自己的 daemon 响应状态查询。克隆出来的虚拟机重新要求授权。确认/Applications/CuaDriver.app带有发布签名源码构建若使用 ad-hoc 或会变化的签名会得到不同的 TCC 身份普通虚拟机使用场景应改用发布安装器。维护者测试源码构建时走 Run Cua Driver macOS tests in a Lume VM它创建一个稳定的本地签名身份。SSH 里命令正常但 GUI 行为不一致。初始授权和 GUI 测试要在虚拟机显示画面的 Terminal 里做。SSH 适合同步源码和取回产物但它不是拥有可见桌面的前台 Aqua 会话。下一步虚拟机管理文件共享、磁盘克隆等Manage local VMs权限字段完整参考macOS permissions reference【免费下载链接】cuaScale computer-use 2.0 with open-source drivers, cross-OS fleets, and benchmarks for training, evaluation, and data generation.项目地址: https://gitcode.com/GitHub_Trending/cua/cua创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价