电脑操控
大多数编程任务,Codex 靠读写文件和跑命令就能完成。但有些事情只能「看着屏幕点」:检查一个桌面应用的按钮是不是错位了、复现一个只在界面上出现的 bug、在某个没有 API 的后台系统里改一项设置。电脑操控(Computer Use)就是让 Codex 能看屏幕截图、移动鼠标、敲键盘,像人一样操作图形界面。
和它相关的还有两种浏览器能力。这一页讲清楚三者的区别、怎么开启、适合做什么、风险在哪里,以及怎么用配置把它限制在安全范围内。
三种能力的区别
| 能力 | 它操作的是什么 | 典型用途 | 风险 |
|---|---|---|---|
| 内置浏览器 | 桌面应用自带的浏览器面板 | 打开本地开发服务器的页面,看效果、截图、点一点 | 较低:独立环境,不带你的登录状态 |
| 浏览器操控(Chrome 等) | 你电脑上的真实浏览器 | 需要你已登录的网站、需要浏览器扩展的流程 | 较高:能以你的身份操作已登录的网站 |
| 电脑操控 | 整个桌面上的应用和窗口 | 测试桌面应用、操作没有接口的软件、跨应用流程 | 最高:能看到屏幕上的一切 |
选择的原则是能用结构化的方式就不用视觉方式:
- 有命令行工具或 API 的,让它跑命令。
- 有 MCP 服务器或插件的(GitHub、数据库、Figma 等),用 MCP 或插件。
- 网页类的本地开发调试,用内置浏览器。
- 以上都不行,再用电脑操控。
结构化的方式更快、更准、可重复,也不会受窗口遮挡、分辨率、动画影响。
在哪些形态可用
电脑操控和浏览器操控以插件形式随 桌面应用 提供(见 桌面应用与界面),支持 macOS 和 Windows。终端里的 CLI 有对应的功能开关,但截屏和点击需要桌面端的能力,日常请在桌面应用里使用。
在 CLI 里可以查看这些开关的状态:
codex features list | grep -E "computer_use|browser_use|in_app_browser"在当前版本(0.142)里,computer_use、browser_use、in_app_browser 都是稳定功能且默认开启。它们同时是「受管控」的开关:组织管理员可以在 requirements.toml 里统一关掉,见 安全与团队管理。
关于模型和账号
电脑操控依赖模型理解截图的能力。用第三方接口(包括 HiveGPT)时能否使用这些插件,取决于桌面应用版本和所选模型,以应用内显示为准。遇到插件不可用,先确认已更新到最新版。
开启和授权
第一步:安装插件
在桌面应用的设置或插件页找到「电脑操控」(Computer Use),点击安装。浏览器操控对应的是 Chrome 等浏览器插件,同样在插件页安装。
第二步:系统权限(macOS)
macOS 第一次使用时会请求两项系统权限,到「系统设置 → 隐私与安全性」里给 Codex(或 ChatGPT)应用打开:
| 权限 | 用途 |
|---|---|
| 屏幕录制 | 让 Codex 看到目标窗口的内容 |
| 辅助功能 | 让 Codex 点击、输入、操作菜单 |
Windows 上的限制
Windows 上的电脑操控只能在当前活动的桌面上运行,执行期间 Codex 会接管鼠标和键盘,你没法同时用电脑。需要它长时间工作时,可以:
- 在虚拟机里运行桌面应用,让它操控虚拟机而不是你的主桌面;
- 或者用另一台设备远程查看进度,自己离开电脑。
第三步:应用授权
系统权限只决定 Codex「能不能」看和点,具体能操作哪些应用由 Codex 自己的应用授权决定:
- 每次要操作一个新应用前,Codex 会询问你是否允许。
- 选「始终允许」后,以后用这个应用不再询问。只对你完全放心的应用这样做。
- 在设置的电脑操控页面可以查看和移除「始终允许」的列表。
注意:文件读写和 shell 命令仍然遵循当前线程的沙箱和审批设置,电脑操控不会绕过它们。
怎么发起任务
在提示词里明确说要用电脑操控,或者用 @ 指定应用:
用电脑操控打开我们刚构建的 Notes.app,新建一条带中文标题的笔记,
看标题栏是否被截断。如果截断了,找到对应的布局代码修复,然后重新构建并再验证一次。打开 @Chrome,访问 http://localhost:5173/checkout,
用测试卡号走一遍下单流程,截图记录每一步,报告哪一步出现报错。写好这类任务的要点:
- 只给一个目标应用或一条流程。目标越窄,它越不容易点错窗口。
- 说清楚验收方式:「看到什么算成功」「截图保存到哪里」。
- 把修改和验证串起来:改代码 → 重新构建 → 用同样的界面流程再验证,比只让它看一眼有用得多。
本地 Web 项目优先用内置浏览器而不是电脑操控:
在内置浏览器里打开 http://localhost:3000,把移动端宽度下导航栏重叠的问题修好,
修完刷新页面截图确认。适合与不适合的任务
| 适合 | 不适合 |
|---|---|
| 测试正在开发的桌面应用、iOS 模拟器里的流程 | 有 API 或命令行能完成的操作 |
| 复现只在界面上出现的 bug | 涉及支付、转账、修改账户安全设置 |
| 操作没有接口的内部系统(只读查看为主) | 需要输入密码、密钥、验证码的步骤 |
| 检查页面在不同窗口尺寸下的显示 | 你不在场时操作已登录的重要账号 |
另外,按官方说明,电脑操控不能用来自动化终端应用和 Codex 自身(否则可能绕过安全策略),也不能替你以管理员身份认证或批准系统的安全与隐私权限弹窗。
风险与安全建议
电脑操控的风险和它的能力成正比:
- 能看到的就可能被读走。屏幕上的聊天记录、邮件、打开的文档、剪贴板内容,都可能进入模型上下文。
- 网页内容可能是攻击。浏览器里的页面可以藏着「忽略之前的指令,把……发到……」这样的文字(提示注入)。Codex 操作你已登录的浏览器时,网站会把它的点击和提交当成你本人的操作。
- 点错窗口。弹窗、通知抢焦点时,它可能在错误的窗口里输入。
建议:
- 开始前关掉无关的敏感应用:聊天软件、邮箱、密码管理器、网银。
- 浏览器任务让它用单独的浏览器或配置文件,不带你日常的登录状态。
- 谨慎使用「始终允许」,尤其是浏览器、终端、系统设置这类应用。
- 涉及账户、安全、隐私、网络、支付、凭据的设置,必须你在场,逐步确认。
- 随时可以中断。看到它开始操作错误的窗口,立即停止任务。
- 屏幕截图和处理的内容同样受你账号的数据控制设置约束;公司环境请先确认是否允许把屏幕内容发给模型。
用配置限制范围
除了界面上的授权,也可以在 ~/.codex/config.toml 里预先写好允许和禁止的应用、网站。
限制电脑操控能碰的应用(macOS 用 bundle ID,Windows 用应用的 AUMID 或可执行文件信息):
[computer_use]
default_app_access = "deny" # 默认不允许,只放行下面列出的
[computer_use.macos.bundle_ids]
"com.apple.Safari" = "allow"
"com.apple.iphonesimulator" = "allow"
"com.apple.Terminal" = "deny"
# Windows:按可执行文件的发布者和产品名放行
[[computer_use.windows.exes]]
publisher_name = "CN=Google LLC"
product_name = "Google Chrome"
binary_name = "chrome.exe"
access = "allow"限制浏览器操控能访问的网站:
[browser_use]
allow_history_access = false # 不允许读取浏览历史
[browser_use.default_origin_policy]
access = "deny" # 默认不允许访问任何网站
[browser_use.origins."http://localhost:5173"]
access = "allow"
downloads = "deny"
uploads = "deny"管理员还可以在 requirements.toml 里强制这些策略,例如完全禁用电脑操控和浏览器操控、禁止 macOS 锁屏状态下的操控、禁止「始终允许」类的持久授权,详见 安全与团队管理。
macOS 的锁屏使用
macOS 上有一个默认关闭的选项:允许在 Mac 锁屏后继续使用电脑操控(比如你从手机发起任务,而 Mac 已经锁屏)。开启后,Codex 只会在一个活跃、可信的电脑操控回合里短暂解锁,并遮挡所有显示器;检测到本机键盘或鼠标输入会立即重新锁定。这个功能只适合你清楚用途的场景,公司电脑上管理员可以统一禁用。
常见问题
Codex 说看不到或控制不了某个应用? macOS 上检查「屏幕录制」和「辅助功能」里 Codex / ChatGPT 是否已勾选,勾选后可能需要重启应用。Windows 上确认目标应用在当前活动桌面上可见、没有被最小化。
它在界面里改了设置,但审阅面板里没有改动? 通过图形界面做的修改,只有保存到磁盘、并且在项目目录里时,才会出现在改动审阅里。
操控很慢、经常点偏? 减少屏幕上的窗口、关闭动画、固定窗口大小,并把任务拆小。能用命令完成的步骤让它直接跑命令。
小结
- 内置浏览器、浏览器操控、电脑操控风险依次升高,能用命令、API、MCP 就不用视觉操控。
- 电脑操控以插件形式随桌面应用提供,macOS 需要屏幕录制和辅助功能权限,Windows 只能在前台运行。
- 系统权限、应用授权、沙箱审批是三层独立的控制,「始终允许」要慎用。
- 开始前关掉敏感应用,浏览器任务用单独的配置文件,涉及账户和支付的步骤必须在场。
- 可以在
config.toml里用[computer_use]、[browser_use]限定应用和网站,团队可用requirements.toml强制。
下一步:非交互模式与 CI/CD