
📚 系列导航:上一篇 16 · 安全与风险边界 把「Codex 能闯多大祸、边界在哪」这条线画清楚了。这一篇给它再开一扇门——让 Codex 直接看你的屏幕、点你的桌面应用、开你的浏览器:测一个原生 App、复现一个只在界面上才出现的 bug、在你登录好的网站里替你点几下。前面所有篇章里 Codex 干的活都在「文件 + 命令行」那一亩三分地,这篇是它头一回伸手碰图形界面。下一篇 18 · config.toml 配置详解 再回到配置文件,把那一摞旋钮一次拧明白。
⚠️ 实验性功能,可能随版本变化。 本篇讲的 Computer Use(电脑操控)、Chrome 扩展、内置浏览器都还在快速迭代,下面凡涉及具体入口、菜单名、默认行为、快捷键,一律以你界面里看到的和 Codex 官方文档 为准,后续版本可能调整。
OpenAI 在官方文档里给 Computer Use 圈了一条很硬的地理红线:上线时它在 macOS 和 Windows 可用,但欧洲经济区(EEA)、英国、瑞士这三处不行。这不是网络问题,是功能本身按区域关掉了——你人在伦敦,哪怕 访问国外网站也不一定能开。
我第一次注意到这条,是去年翻 app 那棵文档目录时数页面:computer-use、browser、chrome-extension 三个页面专门讲「Codex 怎么碰图形界面」,比讲沙箱的篇幅还长。OpenAI 把这么多笔墨砸在这上面,说明它认定一件事——光会读文件、跑命令的 AI,迟早会卡在「这事只能在界面上做」的墙前。
举个我真撞过的墙:去年调一个 Electron 小工具,有个 bug 只在窗口拉到某个宽度时才崩,命令行里跑测试一切正常,日志干干净净。这种「只在界面上才现形」的 bug,以前我只能自己一遍遍拖窗口、截图、再回头跟它描述。Computer Use 就是来拆这堵墙的——让 Codex 自己看屏幕、自己动手复现。
这一篇就讲清三件事:Codex 碰图形界面的三条路(电脑操控、Chrome 扩展、内置浏览器)各管哪一块、怎么开起来、以及操作你「真桌面 / 真浏览器」时的安全边界在哪。
看完这一篇,你会拿到:
@ 调它),以及地区 / 平台限制先给结论:Computer Use = 让 Codex 像人一样「看屏幕、动鼠标键盘」操作图形界面——它能看你 macOS 或 Windows 上的窗口、菜单、按钮,能点击、能打字、能翻菜单。命令行工具够不着、结构化集成(插件 / MCP)也没有的活,才轮到它。
官方把它的本命说得很直白:当一件事「光看文件或命令输出验证不了」时,才用它。比如——
类比:请了个「能上手帮你点电脑」的实习生,而不是只会发邮件的远程同事。 远程同事(命令行 / 插件)你只能给他发指令、收他回的文件,他碰不到你桌面;Computer Use 这个实习生是坐到你工位上的——他用你的鼠标、你的键盘,屏幕上有啥他看得见,你也全程看得见他在点哪。方便归方便,但他动的是你真实的桌面,不是一个隔间里的演练机——这点后面安全那节是重点。
这里有个新手最容易踩反的判断,官方反复强调:
对于你在本地构建的 Web 应用,先用内置浏览器(in-app browser),而不是 Computer Use。
为什么?因为 Computer Use 是「最重、最慢」的手段——它要截屏、要算坐标、要一帧帧动鼠标。能用更轻的工具搞定的事,杀鸡别用牛刀。所以正确的排序是:有插件 / MCP 就用插件,是网页就用浏览器工具,只有连原生桌面、模拟器、没接口的应用都得碰,才升级到 Computer Use。下一节就把这三条路彻底摆开。
💡 一句话总结:Computer Use 让 Codex 看屏幕、动鼠标键盘操作整个桌面,是「最重」的那条路——专留给原生 App、只在界面现形的 bug、没插件的数据源;本地 Web 应用先用内置浏览器,别一上来就掏它。
接之前先把一件最容易混的事捋顺:Codex 碰「界面」有三条路,新手十有八九会用错那条。官方为这三条专门各写了一个文档页,可见它们是三个不同的东西,不是一个功能的三种叫法。
类比:去另一个城市办事的三种交通方式。 同城近距离(本地网页)走路就到,又快又不用打票——这是内置浏览器;要去你常去、有门禁卡的写字楼(你已登录的网站)得开你自己那台车,车里插着门禁卡——这是Chrome 扩展;连郊区没通路的地方都得去(原生桌面、没接口的应用),才包一辆能上山下乡的越野车——这是电脑操控。三种都能「移动」,但用错了要么到不了、要么瞎费劲。
挨个说清楚各自的主场:
内置浏览器(in-app browser) ——Codex 窗口里自带的一个浏览器,你和它共享同一个渲染页面的视图。它专管:本地开发服务器(localhost)、文件预览、不用登录的公开页。它不碰你 Chrome 的登录态、cookie、扩展、已开的标签页——所以它干净、隔离,预览和验证都关在 Codex 里头,不动你日常浏览器。开发时改完前端想看一眼效果,就用它。
Chrome 扩展(Codex Chrome extension) ——当任务需要你已经登录好的浏览器状态时才用它。官方点名的典型场景:让 Codex 读 / 操作 LinkedIn、Salesforce、Gmail、公司内部工具这类必须登录的站。它借的是你真实 Chrome 里那份登录态,能进你登录着的一切。
电脑操控(Computer Use) ——上一节讲的,碰的是整个桌面:原生 App、模拟器、跨应用流程。范围最大,也最慢。
三条路对照着看,你就知道该掏哪条:
维度 | 内置浏览器 | Chrome 扩展 | 电脑操控 |
|---|---|---|---|
碰什么 | Codex 自带浏览器里的网页 | 你真实 Chrome(带登录态) | 整个 macOS / Windows 桌面 |
典型活儿 | localhost、文件预览、公开页 | LinkedIn / Salesforce / Gmail / 内网系统 | 原生 App、模拟器、跨应用流程 |
用不用你的登录态 | ❌ 不用,干净隔离 | ✅ 用你 Chrome 的登录态 | 看你操作的具体应用 |
怎么调起来 | @Browser 或让它「用浏览器」 | @Chrome | @Computer 或 @AppName |
装什么 | Browser 插件 | Chrome 插件 + Chrome 扩展 | Computer Use 插件 |
轻重 / 速度 | 最轻最快 | 中等 | 最重最慢 |
一句话分工:本地网页用内置浏览器,登录态网站用 Chrome 扩展,连桌面都得碰才上电脑操控。下面三节分别讲怎么开。
💡 一句话总结:碰界面有三条路——内置浏览器(localhost / 公开页,不碰登录态)、Chrome 扩展(你已登录的网站)、电脑操控(整个桌面);从轻到重,用错那条要么够不着要么瞎费劲,先对着表选对路再动手。
按「从轻到重」的顺序,先讲最该先上手的内置浏览器。它的定位就一句话:你和 Codex 共享一个看渲染页面的视图,专门拿来预览和验证本地 Web 应用。
第一步,装 Browser 插件:在 Codex 里进 Plugins,把 Browser 插件加上、打开(具体入口以界面为准)。
第二步,打开内置浏览器。官方给了几种方式:
Cmd+Shift+B ,Windows 是 Ctrl+Shift+B 。光预览还不够,你可以让 Codex 直接操作这个内置浏览器:点击、打字、看渲染后的状态、截图、下载页面资源、跑只读的页面检查 JavaScript、或者验证一个修复有没有生效。
调它的方式:在任务里让它「用浏览器」,或者直接 @Browser 引用。一条官方示例长这样:
用浏览器打开 http://localhost:3000/settings,复现那个布局 bug,只修溢出的那几个控件,别动其它。
内置浏览器最香的一点,是批注(comment / annotation)——当一个 bug 只在渲染出来的页面上才看得见时,你可以直接在页面元素上圈一下、留句话,给 Codex 一个精准到具体元素的目标,比打一堆字描述清楚多了。
官方给的操作要点(以界面为准):
Shift 点击可以框选一块区域;Cmd 点击可以立刻把评论发出去。留完批注,在对话里发条消息让它来处理就行。好的批注是具体的,比如:
这个按钮在手机上会溢出。能放一行就保持一行,放不下就换行,但别改卡片的高度。
还有个更精细的入口——批注上有个 config 图标,点开后可以直接在界面上调字体、文字大小、间距、颜色,并实时预览效果,满意了再提交给 Codex。比纯文字描述「字体改大一点、颜色偏暖一点」精准多了,所见即所得。
我自己用下来,批注这招对「差一点点」的视觉调整特别灵——上个月调一个定价页,tooltip 老是盖住光标下的数据点,我懒得描述坐标,直接在那个 tooltip 上圈一下写「把它挪到图表范围内、别遮数据点」,Codex 一次就改对了。关键是把你在意的那个「视觉状态」说清楚:加载中、空状态、报错、还是成功态。
一个隔离边界你得记住,官方写得很明确:
内置浏览器不支持认证流程、登录后的页面、你日常浏览器的配置、cookie、扩展、或已经打开的标签页。它只用来打开不用登录就能访问的页面。
也就是说——要登录的站,它干不了,那是下一节 Chrome 扩展的活。
💡 一句话总结:内置浏览器是「Codex 自带的、干净隔离的浏览器」,装 Browser 插件后用
@Browser调,专治 localhost / 公开页的预览和验证;批注(圈元素 + 留话)是它最值钱的绝活;但它不碰登录态,要登录的站交给 Chrome 扩展。
当任务离不开你已经登录好的浏览器状态——读你的 LinkedIn、改 Salesforce 里的客户、在 Gmail 里干活、操作公司内网系统——这时候才轮到 Chrome 扩展。
官方给的安装流程是从插件走,照着点就行:
装扩展、访问 Chrome 应用商店在国内一般需要「 访问国外网站」;具体的扩展页面跟着 Codex 的安装向导走,别自己去搜一个名字相近的装错了。
装好后开一个新的 Codex 线程,Codex 在任务需要登录态网站时会主动建议用 Chrome;你也可以直接在提示词里点名它:
@Chrome 打开 Salesforce,根据这些通话记录更新对应的客户。
如果 Chrome 还没开,Codex 能替你开。一个贴心细节:Chrome 浏览器任务跑在 Chrome 的标签页分组(tab group)里,一个线程的活会被归到同一组,不至于把你标签栏搅得乱七八糟。
这是 Chrome 扩展(也包括内置浏览器)最该搞懂的默认行为——别想当然以为它装好就能随便乱跑:
默认情况下,Codex 在操作每一个新网站之前都会先问你。 它按网站的 host(比如
example.com)来弹这个确认。
被问到时,你有三个选项,按风险自己挑:
更细的控制在 Computer Use 设置里——你可以维护一份 allowlist(白名单)和 blocklist(黑名单):
这里有两个开关 / 设定,新手最容易栽,单独拎出来强调:
设定 | 默认 / 行为 | 踩坑提醒 |
|---|---|---|
每个新站先问 | 默认开着(会问) | 这是第一道闸,别嫌烦就急着关 |
始终允许浏览器内容(always allow browser content) | 你手动打开后,Codex 不再为用网站弹确认 | 一旦打开就等于拆了那道闸,想清楚再开 |
浏览器历史记录(browser history) | Codex 想用时会问,且没有「始终允许」选项 | 历史里可能有内网 URL、搜索词等敏感信息,按需放行、用完即止 |
最后那条浏览器历史值得多说一句:官方明确它的历史访问每次都按请求临时授权、不给永久放行——因为历史记录里常藏着敏感的内网地址、搜索词、登录设备上的活动痕迹,一旦被页面里的恶意内容诱导,这些数据可能被抄到不该去的地方。所以它故意不给「一劳永逸」的口子。
接 Chrome 扩展最常见的就是「连不上」。官方给了一串排查顺序,照着走(先确认你要访问的站没被黑名单挡着,再往下):
/feedback 联系支持,带上线程 ID 。还有个独立的小坑:如果 Chrome 任务需要从你电脑上传文件,得在扩展详情页里打开 「Allow access to file URLs(允许访问文件 URL)」 ,否则它够不到本地文件。改完重启那个任务。
💡 一句话总结:要登录态的网站才用 Chrome 扩展,从 Plugins 加 Chrome 插件、跟向导装扩展、确认 Connected ,用
@Chrome调;默认每个新站先问你,allowlist / blocklist 在 Computer Use 设置里管,「始终允许浏览器内容」一开就等于拆闸——想清楚再开。
最重的这条留到最后。电脑操控让 Codex 看屏幕、动鼠标键盘操作整个 macOS / Windows 桌面,开它有两道门槛——地区 + 系统权限——比前两条都硬。
把最扫兴的放最前面:
第一步,装 Computer Use 插件:进 Codex 设置,打开 Computer Use ,点 Install 装上——在让它操作桌面应用之前先装好。
第二步,给系统权限,两个平台不一样:
macOS 要授两项权限(首次使用会弹,按提示给):
权限 | 用途 |
|---|---|
屏幕录制(Screen Recording) | 让 Codex 看见目标应用的界面 |
辅助功能(Accessibility) | 让 Codex 点击、打字、导航 |
要是 Codex 死活看不见或控制不了某个应用,去 系统设置 > 隐私与安全性 ,把 Codex 应用的「屏幕录制」和「辅助功能」勾上。
Windows 没有这两项系统授权那套,但有个前台规矩:电脑操控跑在当前活动桌面上,任务期间目标应用必须可见,而且——
在 Windows 上,电脑操控无法在后台运行。任务跑着的时候,Codex 会移动你的鼠标指针、打字、接管前台。
说白了:Windows 上它一干活就抢你的鼠标键盘,你这会儿别想同时用这台电脑。想让任务在你离开时继续跑,官方给两条路:保持设备解锁联网 + 用手机远程查看进度,或者在 Windows 虚拟机里跑 Codex ,让它接管虚拟机而不是你主桌面。
在提示词里 @Computer ,或者直接 @AppName 点名某个应用,把具体哪个 App、哪个窗口、哪条流程说清楚。官方两条示例:
用电脑操控打开这个 App,复现新手引导里的那个 bug,修掉导致它的最小代码路径。每改一次,就把同一条 UI 流程重跑一遍。
打开 @Chrome,验证最新改动之后结账页面是否还正常。
注意第二条——@Chrome 既能走上一节的 Chrome 扩展(结构化、带登录态),也能在电脑操控语境里让它「视觉地」操作浏览器。官方的建议是:目标应用有专用插件 / MCP 就优先用那个,只有需要「肉眼看着操作」时才上电脑操控。
这里有个容易混的点,官方专门拆开讲:电脑操控的「系统权限」和 Codex 里的「应用审批」是两套东西。
碰到敏感或破坏性的操作,Codex 可能还会额外再问一次。
还有个进阶能力叫锁定使用(Locked use),只在 macOS 有,而且默认关着、得你手动开。它解决的是:你从别的设备发了个 Codex 任务,任务要用桌面应用,但你的 Mac 已经锁屏了。
启用后,Codex 会装一个 Apple 授权插件(authorization plug-in),参与 macOS 的解锁流程,在受信任的电脑操控回合里临时解锁 Mac、保留锁屏保护。官方列出 4 道安全护栏:
官方把话说得很死:这是个刻意做窄的能力,不是给你 Mac 的「通用远程解锁」后门,别的 App 和本地进程都借不到它解锁。新手别急着开这个,等你真有「锁屏后还要让它干活」的刚需再说。
💡 一句话总结:电脑操控碰整个桌面,门槛最高——地区上 EEA / 英国 / 瑞士不支持、Linux 没有;macOS 装插件后给「屏幕录制 + 辅助功能」,Windows 会抢你前台;系统权限和应用审批是两码事,文件 / shell 照旧走沙箱;锁定使用是 macOS 专属、默认关、刻意做窄,新手先别碰。
这一节最不能跳——因为电脑操控和 Chrome 扩展碰的都是你真实的、登录着一切的桌面和浏览器,不是一个用完即焚的沙箱。这跟前面 Codex 在沙箱里跑命令(第 15 篇)是完全不同的信任边界,第 16 篇那根「便利和风险成正比」的主线,到这儿绷到了最紧。
官方说得直接:用电脑操控时,Codex 能看屏幕内容、截图、操作目标应用里的窗口 / 菜单 / 键盘输入 / 剪贴板。把这些「它看得见的东西」都当成它任务期间会处理的上下文。两类风险你得有数:
网页可能包含恶意或误导性内容,而网站会把已批准的点击、表单提交、登录态下的操作,当成是你本人发起的。
好在这不是「敞开了让它乱来」,内置了几道闸:
电脑操控无法自动化终端应用、也无法自动化 Codex 自己(那会绕过 Codex 的安全策略);它也无法以管理员身份认证、无法替你批准电脑上的安全和隐私权限提示。
最后这条特别让人安心——它没法自己点掉那个「是否授予权限」的系统弹窗,安全相关的口子始终攥在你手里。
官方护栏之外,操作真桌面 / 真浏览器还有几条土规矩,我整理成一张「该怎么办」表:
场景 | ❌ 别这么干 | ✅ 该这么办 |
|---|---|---|
一次给多少任务 | 一口气甩好几个 App / 流程让它乱跑 | 一次只给一个明确的目标应用或流程 |
敏感应用 | 把网银、密码管理器开着不管 | 任务不需要就关掉敏感应用 |
Windows 上干活 | 它抢前台时你还想同时用这台机 | 用第二台设备 / 虚拟机,或先停任务再自己用 |
涉及密钥的任务 | 丢给它自己跑、人走开 | 你在场、能逐步批准时才做 |
「始终允许」 | 见一个点一个,图省事 | 只对你确实信任它自动用的 App / 站点开 |
账户 / 支付 / 隐私 / 网络设置 | 让它自己点完 | 这类操作全程在场盯着 |
它点错了窗口 | 等它自己纠正 | 立刻取消任务 |
还有个数据层面的提醒:通过桌面应用做的改动,在保存到磁盘、被项目追踪之前,可能不会出现在审查面板(review pane)里——别以为审查面板空着就等于没改东西。另外,你的 ChatGPT 数据控制设置适用于经 Codex 处理的内容,包括电脑操控截的那些屏。
想边干活边继续用浏览器?官方给了个干净的办法——让 Codex 去用另一个不同的浏览器,把它跟你日常那个隔开,互不打扰。
总原则就一条:它在桌面 / 浏览器里点的每一下都是「真的」——不像沙箱里跑错了删个环境重来,浏览器里点了「确认付款」就是真付了。所以越是不可逆、越是涉钱的操作,越要自己把着方向盘。
💡 一句话总结:电脑操控和 Chrome 扩展碰的是真桌面 / 真浏览器(非沙箱),风险在「登录态即钥匙」和「页面里的提示注入」;官方护栏有「逐站 / 逐应用先问、随时可中断、终端 / Codex 自身 / 系统权限弹窗它碰不了」,你自己则要一次一个目标、关掉无关敏感应用、把涉钱和不可逆操作攥在手里。
光看不练假把式。下面带你跑一个最小实战:用内置浏览器(三条路里最轻、最安全的那条)打开一个本地页面、让 Codex 读点东西回来。全程不碰你的登录态、不抢你前台,专门拿来验证「这条路通了没」。
为什么选内置浏览器练手?因为它不用任何系统权限、不碰你的 Chrome、不受地区限制,是三条路里门槛最低、翻车面最小的。Chrome 扩展和电脑操控按前面的步骤开,原理一样、只是闸更多。
第一步:起一个本地页面
随便起个最简单的静态服务,给内置浏览器一个能打开的本地地址。任选其一:
python3 -m http.server 3000
预期:终端显示类似 Serving HTTP on :: port 3000 (http://[::]:3000/) ... ,说明本地服务起来了。先用你日常浏览器访问 http://localhost:3000 确认能打开(会列出当前目录的文件)。
第二步:装并打开内置浏览器
在 Codex 里进 Plugins ,确认 Browser 插件已加好、已打开(以界面为准)。然后打开内置浏览器——用快捷键最快:
Cmd+Shift+BCtrl+Shift+B✅ 自验:Codex 窗口里弹出一个内置浏览器视图。
第三步:让 Codex 用内置浏览器读页面
给它一条「只读、不碰敏感账号」的指令:
用浏览器打开 http://localhost:3000,把页面上列出的文件名读给我,并截一张图。
预期:你会看见内置浏览器导航到 http://localhost:3000 ,Codex 把页面上的内容(这里就是目录里的文件名列表)读回对话,并附一张截图。看到它真打开、内容真回来了 = 这条路通了。 第一次操作某个站时,按第 04 节说的,它可能先弹一个确认问你要不要用这个网站——允许即可。
第四步(可选):试试批注
想体验第 03 节那个绝活,打开批注模式,在页面某个元素上圈一下、留句话(比如「这行字太小,调大两号」),再发条消息让 Codex 处理。预期:它能精准定位到你圈的那个元素去改,而不用你描述半天它在哪。
跑通前三步,你就把「装 Browser 插件 → 打开内置浏览器 → 让它读本地页面」这条最轻的链路走了一遍。以后无论是换内置浏览器干别的活、还是升级到 Chrome 扩展 / 电脑操控,本质都是这套「装插件 → 给权限 / 确认 → @ 调它 → 看它动起来」,无非闸越来越多、动的东西越来越真。
💡 一句话总结:动手就三步——起本地服务、打开内置浏览器(
Cmd/Ctrl+Shift+B)、给一条只读指令看它真把页面读回来;这是三条路里最轻最安全的入口,跑通它,另外两条照葫芦画瓢、只是多几道闸。
这一篇给 Codex 接上了图形界面——从「只会摸文件和命令行」,到能开浏览器、点桌面应用、复现只在界面才现形的 bug。但更关键的是,你搞清了碰界面有三条路、别用错。
把核心串起来回顾:
让 Codex看屏幕、动鼠标键盘
操作桌面,是最重
的路,本地 Web 先用内置浏览器你现在应该能: 讲清这三条路各管哪一块、什么活该掏哪条;独立把内置浏览器开起来读本地页面;知道 Chrome 扩展和电脑操控怎么装、有哪些地区 / 平台限制;并且清楚操作真桌面 / 真浏览器的风险在哪、该守哪几道闸。这一接,Codex 从「本地代码助手」迈出了一大步——能直接替你看屏幕、动界面了。
这三条路的关系,用一张图收个尾:

这张图把「任务要碰界面 → 是哪种界面 → 走哪条路 → 各自的脾气」一条线串清楚了,下回拿不准用哪个,照它走一遍就有答案。
💡 一句话总结:三条路从轻到重——内置浏览器管本地和公开页、Chrome 扩展管你登录着的网站、电脑操控管整个桌面;权限越大风险越真,核心安全原则只有一条:操作真桌面 / 真浏览器时,每一下都是「真的」,涉钱和不可逆的自己把着方向盘。
下一篇 18「config.toml 配置详解」——这一篇里你装了三个插件、调了一堆权限和 allowlist,是不是觉得设置散落在各处、记不住?其实 Codex 把绝大多数行为旋钮都收在一个文件里——config.toml 。下一篇就把这摞旋钮一次拧明白:模型、沙箱、审批、MCP……哪个键控什么、默认是什么、改完要不要重启。留个小思考:这一篇让 Codex「能动手」靠的是装插件 + 给权限,那要是想把「默认用哪个模型、默认多大胆」这些一开机就生效的偏好定下来,你猜该写到哪儿?