Codex-IDE
Codex的IDE扩展使用起来并非直接上手,真正的门槛藏在“找到正确的它”这一环节。名字反直觉、默认位置隐蔽,这些事先知道的要点能帮你快速绕过弯路。本文将深入解析扩展、CLI与桌面App间的差异,并逐步展示图形化界面的核心优势。
09 · IDE 扩展(VS Code 等)
封面图
我先分享一段与同事上个月的真实对话。
实际上,Codex IDE扩展的第一道关卡不在于“使用”,而在于“找到正确的它”——名称违背直觉,且在Cursor中默认藏于折叠的扩展栏内。本文提前标注这些反直觉要点,并详尽解析图形界面相比CLI的真正便捷之处。
阅读本文后,你将获得:
- 在VS Code / Cursor / Windsurf中安装Codex扩展的完整流程,附带“搜索不到/图标找不到”的排查清单。
- 编辑器上下文(
@file、选中代码自动喂入)的使用方法。 - 三档审批模式(approval mode)的详解。
- 模型与思考深度切换这类图形界面优势操作。
- 一张“扩展 vs CLI vs 桌面App该用哪个”的对照表,以及扩展独有的斜杠命令与自定义快捷键。
01 先搞清楚:扩展、CLI、桌面 App 是什么关系
“我已经会用终端里的codex和桌面App了,还需要再装扩展吗?”直接回答:扩展并非第四个独立工具,它只是为Codex CLI套上了一层编辑器界面。官方表述直白——IDE扩展“使用与Codex CLI相同的配置,共享同一份设置”。你在~/.codex/config.toml中配置的模型、沙箱和审批策略,扩展全部继承;你在CLI中登录的信息和编写的AGENTS.md,扩展同样识别。
打个比方:同一辆车,有方向盘和遥控器两套操控。CLI好比坐在驾驶座握方向盘——直接、全面、所有功能均可使用;扩展则是配套遥控器,无需进入驾驶座,在编辑器内点击几下即可操控车辆,并能在大屏幕(并排diff)上实时查看车况。发动机、油箱和行车记录系统是相同的——无论选择哪种操控方式,车辆本身不变。桌面App(先前03、07篇介绍过)则是同款车型的另一个独立外壳,适合不想使用编辑器、需要多任务并排监控的用户。
那么,何时使用哪种方式?根据实际操作经验,整理成如下对照表:
场景 |
CLI(终端) |
IDE 扩展 |
桌面 App |
|---|---|---|---|
日常主要使用VS Code / Cursor写代码 |
尚可 |
✅ 最顺畅,代码上下文即开即用 |
需切换窗口 |
编写脚本、批量自动化、通过SSH操作服务器 |
✅ 唯一选择 |
❌ |
❌ |
不想接触命令行、需要多任务并排监控 |
❌ 不推荐 |
一般 |
✅ 最舒适 |
查看改动diff、选中某段代码直接询问 |
文本diff,效果一般 |
✅ 原生并排diff |
✅ 可视化 |
使用扩展未提供的全部CLI功能 |
✅ 功能齐全 |
在内置终端运行 |
— |
总结:编写代码和审查改动这类涉及文件操作的任务,扩展更显顺手;需要批量执行命令或使用扩展面板未暴露的功能时,直接在编辑器的集成终端输入codex即可——其与扩展共享同一配置和登录,无缝切换。
02 安装:认准 openai.chatgpt,外加 Cursor 的「图标藏起来」坑
支持哪些编辑器、哪些系统
官方声明:Codex IDE扩展支持VS Code及其分支Cursor、Windsurf,以及VS Code Insiders。JetBrains全家桶(IntelliJ、PyCharm、WebStorm、Rider等)使用另一套独立的JetBrains集成。系统层面支持macOS、Windows和Linux;在Windows上既能使用原生Windows沙箱直接运行,也能在需要Linux环境时切换到WSL2(详见官方Windows指南)。
三种安装方式
方式一:通过扩展市场搜索安装(最稳定,但需注意搜索名称)
在编辑器中按下Cmd Shift X(Mac)或Ctrl Shift X(Windows/Linux)打开扩展视图。这里存在全篇第一个注意点:很多人习惯搜索Codex,结果却显示一堆第三方小插件,找不到官方版本。原因是官方扩展的ID是openai.chatgpt,发布者(publisher)为OpenAI。搜索Codex或ChatGPT均可,但务必确认发布者是OpenAI的选项再点击安装,避免误装仿冒版本。例如VS Code中搜索codex的结果展示:
VS Code扩展市场搜索codex,请认准发布者为OpenAI的官方扩展
方式二:通过链接直接安装
在编辑器打开状态下,点击相应链接将直接跳转至安装页面:
VS Code : vscode:extension/openai.chatgptCursor: cursor:extension/openai.chatgptWindsurf: windsurf:extension/openai.chatgpt
方式三:命令行安装(最快)
如果已安装code/cursor命令行工具,一行命令即可完成:
code --install-extension openai.chatgpt
Cursor用户将code替换为cursor即可。预期输出类似:
Installing extensions...Extension 'openai.chatgpt' was successfully installed.
安装后找不到图标?针对不同编辑器排查
官方说明:安装完成后,Codex会出现在编辑器侧边栏,VS Code中默认位于右侧。不同编辑器的表现有所差异,请对照下表进行排查:
现象 |
使用的编辑器 |
排查操作 |
|---|---|---|
安装后未立即看到Codex |
VS Code |
官方建议:重启编辑器,然后查看右侧栏 |
右侧栏为空/找不到入口 |
Cursor |
Cursor的活动栏默认横排布局,折叠项会将Codex隐藏——需要将其固定(pin)出来,并调整扩展顺序 |
希望将Codex移回左侧主侧栏 |
VS Code |
直接将Codex图标拖拽至左侧活动栏即可 |
希望在Cursor中将其移至右侧 |
Cursor |
在设置中搜索activity bar,将其方向改为vertical,重启后拖拽至右侧,最后将方向改回horizontal |
我在Cursor中曾遇到第二条问题:安装后在右上角反复查找都未看到Codex,几乎以为安装失败,后来发现它被折叠在活动栏的“更多”选项中——Cursor的横排活动栏空间有限,会将后安装的扩展收入折叠菜单,固定出来即可。VS Code用户不会遇到此问题,但Cursor用户几乎都会经历一次。
首次打开需登录
首次点击Codex面板会提示登录,可选择使用ChatGPT账号或API Key。官方特意指出:你的ChatGPT订阅已包含Codex的使用量,因此多数用户直接使用ChatGPT账号登录即可,无需额外配置API Key。各订阅方案的具体额度,请参考04篇或官方计费页面。
03 编辑器上下文:把「你说的是哪段代码」喂准
让Codex高效工作的最大障碍,是它“不清楚你指的是哪个文件或哪段代码”,从而在整个项目中盲目查找。相比CLI,扩展的最大优势在于能直接利用编辑器中的上下文信息。官方原话:当Codex获取到你打开的文件和选中的代码,你可以编写更简短的提示,获得更快、更相关的结果。
打个比方:当面指着图纸讲解,比通过电话描述更有效。跟装修师傅电话说“客厅那面墙上靠窗那块”,对方需要费力想象,容易误解;当面摊开图纸,手指一戳“这里”,一秒搞定。CLI就像打电话(需要用文字清晰描述位置),扩展则像当面指图纸(选中代码或使用@功能,位置信息直接传递)。
具体有两种方法:
第一招:@file 提及文件
在提示框中输入@后跟文件名,Codex会将相应文件作为参考。官方给出的示例为:
用 @example.tsx 当参考,给 app 加一个叫 "Resources" 的新页面,内容是 @resources.ts 里定义的资源列表
一句提示中使用了@引用两个文件——一个作为模板,一个作为数据源。Codex无需猜测具体是哪两个文件。
第二招:选中代码 + Auto Context,自动喂入
此方法比@更简便:在编辑器中直接选中一段代码,它会自动进入当前对话的上下文。扩展还提供了一个名为Auto Context(自动上下文)的开关,开启时会自动将最近打开的文件和编辑器上下文纳入——你可以使用斜杠命令/auto-context随时控制其开关(斜杠命令列表详见第06节)。
除了选中自动喂入,官方还提供了两个将上下文“钉”入对话的命令,可在命令面板中执行或绑定快捷键:
把选中的那段代码加进当前对话当上下文
我在排查一个React组件的样式bug时,最喜欢使用第二种方法:选中那段可疑的JSX,直接询问“这块为什么渲染错位”,无需输入任何文字描述位置——它两轮就定位到是父容器的flex设置问题。若使用CLI,仅用文字描述那段嵌套结构就需要花费不少时间。
04 三档审批模式:让它先聊方案,还是放手让它干
这一节是扩展中最需要弄清楚的开关。回顾02篇讨论的“沙箱+审批”机制,在CLI中两者是分开独立控制的;而在扩展中,官方将其简化为输入框下方的一个三档“审批模式(approval mode)”切换器,一键切换,无需修改配置文件。
Codex扩展输入框下方的三档审批模式切换器
官方定义的三档功能如下:
审批模式 |
Codex 的行为 |
适用场景 |
|---|---|---|
Agent(默认) |
在工作目录内自动读取文件、修改文件、执行命令;仅当需要操作工作目录外或联网时,才会暂停并请求确认 |
日常开发的主要模式 |
Chat |
仅进行对话和提供建议,在动手前先制定计划,不会直接修改内容 |
希望先讨论方案、阅读代码、进行审查,不希望被改动 |
Agent (Full Access) |
读取、修改、执行命令、联网全部无需审批 |
完全信任的环境,官方原话“使用前务必谨慎” |
打个比方:实习生的三种授权级别。Chat类似于“只允许出方案,动手前必须报备”;Agent类似于“桌面的工作可自行处理,但若要涉及其他部门或对外联系,需先征询意见”;Agent (Full Access)则类似于“全公司范围自由行动,对外联系也无需报备”——最后这一档的名称中包含Full Access并非虚设,官方特意提醒要“谨慎使用”。
几个实际应用中可能遇到的场景:
- 接手陌生项目,只想先了解整体架构:切换至
Chat模式,它只会读取和提供方案,不会修改任何内容。待你心中有数后,再切换至其他模式进行操作。 - 日常增删改查任务:使用默认的
Agent模式即可——工作区内的操作它会自行完成,若需要pip install联网或操作工作区外的文件,它会暂停并请求确认。 - 执行一个100%确定无害的批处理任务:临时切换至
Agent (Full Access)模式,避免反复确认,但任务完成后务必切回原模式。
这里有一个我的真实教训。今年四月,为图省事,我在让Codex为一个模块批量添加日志时,长时间保持了接近完全开放的权限模式。它顺手“优化”了多个文件的import顺序,我事后花费十几分钟才理清它修改了哪些内容。从那以后,我定下一条规矩:默认保持在Agent模式,只有自己百分百确定的操作才临时升至Full Access,完成后立即降回。对于涉及多个文件的大改动,宁可先使用Chat模式让其阐述方案,在动手前就划定范围,比事后清理要高效得多。
05 切模型 + 调思考深度:贵的留给硬活
扩展将“更换模型”和“调整思考深度”操作也简化为点击几下即可完成,这两个选项均在输入框下方的切换器中。
先说模型切换。Codex默认使用官方推荐的模型(当前为GPT系列,具体型号会随版本更新,以本地切换器实际显示为准)。点击输入框下的模型切换器即可更换——不同模型各有所长,简单任务分配给轻量模型以节省额度,复杂任务分配给旗舰模型以保证质量。
再说思考深度(reasoning effort,推理强度),这在CLI篇中也曾提及。官方表示,这一设置控制“Codex在回复你之前先思考多久”,在同一个模型切换器中可选择low/medium/high三档:
打个比方:考试时为每道题分配的思考时间。low像扫一眼就作答的送分题,速度快但可能粗糙;high像压轴大题,让其多推几步、充分思考,速度慢但结果稳健。官方给出的实用建议是:从medium起步,仅在遇到真正需要深度思考的难题时再切换至high。理由明确:提高思考深度会消耗更多token,并更快触及速率限制,尤其是配合高性能模型时。
我的使用习惯与官方建议基本一致:日常任务使用medium,既快速又节省资源;只有在需要读取大量文件、跨模块推理的疑难任务时,才临时调至high。一刀切地全程使用最高档完全是浪费——你以为是在“保险起见”,实则既慢又消耗额度。
维度 |
切模型 |
调思考深度(effort) |
|---|---|---|
在哪切 |
输入框下方切换器 |
同一个切换器,每个模型可单独设置 |
选什么 |
轻量/旗舰等(以本地显示为准) |
low / medium / high |
如何权衡 |
简单任务节省额度、复杂任务保证质量 |
越高越深,越慢越费token |
我的默认 |
日常使用默认模型 |
medium,硬任务临时调至high |
06 斜杠命令和云端委派:扩展里的两件趁手家伙
扩展专属的斜杠命令
在Codex聊天框中输入/,会弹出一系列斜杠命令——请注意,这套命令与你可能在旧教程中看到的/explain、/fix、/test不同。官方实际提供的是以下命令(用于控制Codex行为、在本地和云端之间切换、查询状态):
查当前对话的 thread ID、上下文用量、速率限制
补充说明:如果/goal未在列表中显示,是因为它需要先启用一个功能开关——在~/.codex/config.toml的[features]段下设置goals = true,或直接让Codex运行codex features enable goals(具体以官方为准)。
将长任务委派到云端(实验性功能,以官方为准)
扩展提供一项便捷功能:当遇到耗时较长的大型任务时,无需占用本机资源,可直接将其发送至Codex云端运行,并能在编辑器中实时查看进度和结果。官方给出的操作步骤为:
- 先在ChatGPT的Codex设置中创建一个云端环境。
- 在扩展中选择相应环境,点击“Run in the cloud”。
它还有一个贴心的细节:你可以选择让云端从main分支开始运行(适合启动全新的想法),也可以携带本地的改动开始(适合完成进行到一半的任务)。更巧妙的是——从本地对话启动云端任务时,Codex会记住这段对话的上下文,能够接着你刚才讨论的内容继续执行;云端任务完成后,你又能将改动拉回本地,应用diff、测试并进行收尾工作。
我个人的常用搭配:小修小补的任务在扩展中直接盯着修改;“将整套测试跑一遍并修复所有失败用例”这类耗时较长的任务,使用/cloud命令提交到云端,然后去喝杯咖啡,回来就能接收结果。云端功能是第10篇的重点内容,此处你只需了解“在扩展中一键即可将任务外包出去”即可。
07 动手环节:10 分钟在 VS Code 里跑通全流程
下面从零开始完整走一遍流程,每一步都附带了“你应该看到什么”的提示,按照操作即可验证安装是否正确、功能是否会用。整个过程不依赖你已有的复杂项目,新建一个空文件夹即可。
第0步:创建一个最小练手项目,用VS Code打开
在终端中运行(Mac/Linux;Windows用户使用PowerShell,将mkdir -p替换为mkdir):
mkdir -p /codex-ide-demo && cd/codex-ide-demoprintf 'def greet(name):return "Hello " nameprint(greet("world"))' > demo.pycode .
预期结果:VS Code打开该文件夹,左侧资源管理器显示demo.py文件。(若未安装code命令行工具,请手动打开此文件夹。)
第1步:打开Codex面板并登录
VS Code安装扩展后,Codex默认位于右侧侧边栏;若未显示,请按官方建议重启编辑器(Cursor用户需记得将折叠的图标固定出来)。点击打开Codex面板,首次出现登录提示时,使用ChatGPT账号登录,在浏览器中完成授权。
预期结果:右侧出现Codex对话面板,顶部不再显示未登录提示,输入框下方可看到模型切换器和审批模式切换器。
第2步:选中代码并让它修改,查看并排diff
在demo.py中选中greet函数的两行代码(确认审批模式为默认的Agent),然后在输入框中输入:
帮我把它改成用 f-string,并加上类型注解
预期结果:Codex不会反问“哪个函数”(说明选中代码的上下文已正确传递),直接给出修改——将return "Hello " name改为return f"Hello {name}",并为函数签名添加类型注解,同时以并排diff形式清晰展示增减内容。确认无误后应用修改。
第3步:切换至Chat模式,让它先出方案
点击输入框下方的审批模式切换器,切换至Chat模式,然后提出一个稍大的需求:
给这个文件加上命令行参数支持,让用户能从终端传入名字,先说说你打算怎么改
预期结果:由于处于Chat模式,Codex不会直接修改文件,而是先阐述方案(例如计划引入argparse、修改哪些部分)。确认方案可行后,再切换回Agent模式让其执行修改。
第4步:使用/status查看当前状态
在输入框中输入:
/status
预期结果:Codex列出当前对话的thread ID、上下文用量、速率限制等信息。执行至此步骤,你已体验了编辑器上下文、并排diff、审批模式切换和斜杠命令这四个核心功能。
08 顺手收藏:自定义快捷键和「切回 CLI」
给 Codex 命令绑定快捷键
Codex扩展的命令大多默认没有绑定快捷键(“新建对话”除外),但均可自行绑定。官方提供两种方式:一是点击Codex聊天框中的设置图标,选择“Keyboard shortcuts”;二是通过命令面板自行配置——
- 打开命令面板(
Cmd Shift P/Ctrl Shift P)。 - 运行“Preferences: Open Keyboard Shortcuts”。
- 搜索
Codex或特定命令ID(如chatgpt.newChat),点击铅笔图标,输入你希望使用的快捷键组合。
可绑定的命令(来自官方,已标注平台差异):
命令 ID |
默认快捷键 |
功能说明 |
|---|---|---|
chatgpt.newChat |
Mac: Cmd N / Win·Linux: Ctrl N |
新建一个对话(thread) |
chatgpt.openSidebar |
无(可自绑) |
打开Codex侧边栏面板 |
chatgpt.newCodexPanel |
无(可自绑) |
新建一个Codex面板 |
chatgpt.addToThread |
无(可自绑) |
将选中的代码添加到当前对话 |
chatgpt.addFileToThread |
无(可自绑) |
将整个文件添加到当前对话 |
chatgpt.implementTodo |
无(可自绑) |
让Codex处理选中的TODO注释 |
几个值得了解的扩展设置
扩展自身的设置项目不多,真正影响行为的功能(模型、审批、沙箱)都集中在共享的~/.codex/config.toml文件中进行修改(官方反复强调过这一点,详见02篇和配置篇)。在编辑器界面可调整的主要是体验相关选项,选出几个常用的:
扩展启动好后自动聚焦 Codex 侧边栏
想用回纯 CLI 的操作方式?
操作十分简单:在编辑器中打开集成终端(Cmd `/Ctrl `),直接输入codex即可——它会与扩展共享同一份配置和登录,扩展面板未暴露的CLI功能同样可以使用。图形化界面和命令行操作可以在同一VS Code窗口中自由切换。
09 小结
本文介绍了将Codex从终端迁移至VS Code的核心要点,总结如下:
- 扩展≠新工具:它使用与CLI相同的配置,共享
~/.codex/config.toml和登录信息。编写代码时使用扩展,需要使用CLI专属功能时切换到集成终端即可。 - 安装后的第一步是“找到它”:官方扩展ID为
openai.chatgpt,发布者为OpenAI;VS Code安装后重启即可在右侧找到,Cursor用户需注意将折叠的图标固定出来。 - 图形界面的三大优势:编辑器上下文(
@file/选中代码自动喂入)、三档审批模式(Chat/Agent/Agent (Full Access))、模型与思考深度一键切换。 - 避免被虚假命令误导:斜杠命令应使用
/status//local//cloud//review这套官方列表,而非/explain//fix;快捷键以Keyboard Shortcuts实际绑定为准。
现在,你应该能够独立安装扩展、使用@和选中代码精准传递上下文、根据任务在三档审批模式间灵活切换、利用并排diff查看修改,并了解如何通过/cloud命令将长任务一键委派至云端。熟练操作这套流程后,日常在编辑器中编写代码时便能稳定依靠这一工具。
下一篇将深入讲解云端Codex Cloud功能——本文结尾简要提及的/cloud只是初步尝试,下一篇将正式完整介绍:如何在浏览器中将任务完全外包给OpenAI的云环境、如何让它拉取你的GitHub仓库进行封闭式修改、修改后如何交付diff甚至直接提交Pull Request。请先思考:手头有哪些任务是你最希望“提交后挂起,回头收取结果”的?