臭名昭著aTrust隔离计划1.臭名昭著aTrust隔离计划2.VPN原理与aTrust隔离网络实践3.docker-easyconnect到底做了什么4.TUN(tunnel-隧道-虚拟网卡)模式
个人项目
personal(个人展示)GitHub Actions 自动部署个人展示项目
基于Quartz搭建的个人博客1.Quartz个人博客使用教程2.使用 rsync 增量部署 Quartz 博客3.使用 GitHub Actions 自动部署 Quartz 博客5.域名绑定6.CDN加速7.Google 搜索收录排查:为什么关键词搜得到别人,却搜不到我的网站?Obsidian、双向链接与知识图谱
架构设计
分布式分布式事务RPC原理
旅行
行程攻略青岛三日游行程攻略
前端
NginxNginx配置与反向代理入门
Nodenpm与npx的区别
数据库
mysql01.MySQL基础语法与约束02.MySQL数据库类型03.MySQL多表查询04.MySQL 索引05.MySQL 事务06.MySQL 隔离级别07.MySQL MVCC08.MySQL 锁09.EXPLAIN10.慢查询与 SQL 优化
mysql面试题01.索引问题02.事务与隔离级别03.锁机制04.存储引擎与性能优化05.用户权限、字符集与备份恢复
mysql实战01.EXPLAIN实战02.测试环境菜单误删排查与恢复03.MySQL IN 详解
网络
网络安全1.无线监听网卡苹果M系列虚拟机安装Kali Linux教程3.kali怎么使用RTL8812AU4.kali基础命令
网络基础进程之间怎样通过网络传递数据
网址常用网址
中间键
esElasticsearch 入门
mq
RabbitMQRabbitMQ高级RabbitMQ基础
1. MQ 基础2. MQ 核心角色与代码对应3. MQ Consumer Group 与消费模式4. SOFAMQ 账户变更代码实践5. MQ 可靠性问题6. 消息幂等
redis缓存击穿、穿透与雪崩Redis 分布式锁Redis 缓存问题Redis 数据结构
AI
使用说明
第三方插件&技能简介Archify使用与安装指南geekgeekRun使用OfferFlow使用指南Ponytail使用指南Skills Manager使用指南
CodexCodex CLI与IDE区别及使用指南Codex Hook单独配置与提交通知Codex MCP安装与使用指南Codex第三方插件安装与使用指南
Agent开发0-学习路线1.LLM、Token、上下文窗口与模型参数2.大模型 API、请求参数与响应结构3.Spring AI ChatClient4.Prompt、System Prompt、Prompt 模板6.结构化输出、JSON Schema7.SSE 流式响应8.会话 ID、聊天记录、Redis9.超时、重试、限流、降级10.*完成可运行聊天接口11.Function Calling、Tool Calling 原理12.用 Java 方法定义 Tool13.工具参数设计和校验14.实现订单查询工具15.实现物流查询工具16.实现库存查询工具17.多个工具自动选择18.工具异常、超时、重试
diy主机
主机零件学习1.CPU2.主板3.内存4.显卡5.硬盘6.散热7.风扇8.机箱热门型号价格表
捡垃圾diy-13600kf+5060diy-14600kf+5070
English高频词汇英文基础语法简单句子音标
GitGit常用命令Sublime Merge 使用指南
Java
工具库Caffeine本地缓存Reactor教程
工作实践如何使用@Async线程池使用与排查线上服务 CPU 使用率过高排查压测下RPC接口大量失败排查记录
基础1.HashMap2.ConcurrentHashMap3.HashSet4.final5.static6.volatile7.AtomicInteger8.String动态代理反射锁与线程同步线程注解
面试题1.HashMap 存储在方法内是线程安全的吗2.ArrayList参数传递与引用重新赋值3.== 和 equals 的区别、hashcode4.重载和重写的区别5.String、StringBuffer、StringBuilder区别及使用场景6.接口和抽象类7.ArrayList 与 LinkedList 的区别和扩容机制8.HashMap 和 Hashtable 的区别及底层实现9.Object 和 Objects 的区别10.ThreadLocal的原理和使用场景11.字节码是什么及作用12.Java类加载器有哪些13.双亲委派模型14.Java异常体系15.GC是什么16.GC如何判断对象可以被回收
面试总结0.HR面试模板1.面试一2.面试二3.面试三笔试
网络与 IO(黑马程序员-纯理论)01-网络编程基础02-IO模型与零拷贝03-BIO04-NIO基础与缓冲区05-NIO通道与选择器06-AIO
juc00-目录01-进程与线程02-线程同步与通信03-并发设计模式04-Java内存模型05-CAS与原子类06-ThreadLocal07-阻塞队列08-线程池使用与原理09-任务调度10-ForkJoin与享元模式11-AQS12-ReentrantLock13-读写锁14-并发协作工具15-ConcurrentHashMap16-CopyOnWrite与同步容器17-SkipListMap18-非阻塞队列
juc(工作常见)Java并发编程三个重点拆解
jvm1. JVM运行时数据区
Spring1.Spring IoC、DI与构造方法注入CGLIB、Byte Buddy 与 Spring AOPSpring 常用注解详解Spring Bean 生命周期
Spring MVC异常处理机制
linux常用命令
mac快捷键终端常用操作
python
基础01.Python是什么,为什么要安装Python02.Python项目中.venv是什么03.Python基础语法
基础实战sql替换
HTTPXHRMS员工详情接口调用(Python HTTPX)
windowswindows激活

Codex CLI 与 IDE 扩展的区别及使用指南

1. 概览

Codex CLI 和 Codex IDE 扩展使用的是同一套 Codex 编程能力,但面向不同的工作界面:

  • Codex CLI:在终端中理解代码、修改文件、运行命令和自动化任务
  • Codex IDE 扩展:在编辑器中结合当前打开的文件、选中代码和编辑状态完成开发任务

它们不是互相替代的两个产品。CLI 更适合终端操作和自动化,IDE 更适合围绕当前代码进行快速迭代和可视化审查。


2. 核心区别

对比项Codex CLICodex IDE 扩展
主要界面终端编辑器侧边栏和代码视图
默认上下文当前工作目录和代码仓库当前项目、打开文件、选中代码和编辑器状态
适合任务仓库级分析、命令执行、批量修改、自动化聚焦修改、代码解释、就地审查、边写边问
命令执行原生终端工作流,适合频繁运行工具可以执行开发命令,但交互重点仍是编辑器
修改审查在终端查看摘要和 diff在源码旁查看修改和差异
脚本和 CI支持 codex exec,适合流水线不适合作为脚本或 CI 入口
会话恢复支持 codex resume从编辑器中的聊天记录继续
图片输入可通过 codex --image 或粘贴图片可从编辑器界面附加上下文和图片
插件管理支持 /plugins 插件浏览器IDE 扩展当前不提供插件浏览和安装入口
MCP支持,与同一主机的 IDE 共享配置支持,与同一主机的 CLI 共享配置
云端任务以本地和终端工作流为主可以从编辑器把较长任务交给 Codex 云端
最佳场景“操作整个仓库并运行工具”“围绕眼前代码快速修改和审查”

3. Codex CLI 适合什么场景

优先使用 CLI 的情况:

  • 需要理解整个代码仓库
  • 需要运行构建、测试、格式化或 Git 命令
  • 需要跨多个目录或文件进行修改
  • 需要批量重构
  • 需要检查 CI、本地日志或命令输出
  • 需要把 Codex 放进脚本或流水线
  • 习惯以终端作为主要开发界面
  • 需要浏览和安装 Codex 插件

典型请求:

分析这个项目的登录流程,并指出认证入口和权限校验位置。
修复当前测试失败,找到根因后做最小修改并重新运行测试。
检查当前未提交修改,列出可能导致线上问题的地方。

4. Codex CLI 安装和启动

4.1 安装

macOS 或 Linux 可以使用官方安装脚本:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

更新时再次运行同一个命令。

4.2 在项目中启动

进入项目目录:

cd /path/to/project

启动 Codex:

codex

首次运行时,按照提示选择 ChatGPT 登录或其他可用登录方式。

4.3 第一个任务

启动后直接描述目标:

介绍这个项目的模块结构和主要启动入口。
修复用户列表页的空指针异常,并运行相关测试。

Codex 会以启动命令时所在的目录作为主要工作范围。


5. Codex CLI 常用命令

会话内命令

命令用途
/init生成项目级 AGENTS.md 初稿
/status查看当前会话、模型和权限配置
/permissions调整 Codex 可以执行的操作
/model选择模型和推理强度
/review审查未提交修改、提交或分支差异
/mcp查看当前 MCP Server
/plugins浏览、安装、启用或停用插件

终端命令

恢复历史会话:

codex resume

携带图片启动:

codex --image /path/to/screenshot.png

启用网页搜索:

codex --search

执行非交互任务:

codex exec "运行测试并总结失败原因"

codex exec 适合脚本、批处理和 CI;日常需要反复沟通时使用交互式 codex 更方便。


6. Codex CLI 推荐工作方式

仓库分析

先不要修改代码。梳理订单创建流程,从 HTTP 入口追踪到数据库写入。

功能开发

给订单接口增加幂等校验。先检查项目是否已有幂等实现,完成后运行最小相关测试。

Bug 修复

定位这个异常的根因,检查所有相关调用方,在共享入口做最小修复。

代码审查

/review

选择审查范围:

  • 与目标分支比较
  • 审查未提交修改
  • 审查一个提交
  • 使用自定义审查要求

自动化

codex exec "检查当前改动并生成发布风险摘要"

自动化任务应明确输入范围、输出格式和允许的操作,避免让非交互任务承担模糊的破坏性操作。


7. Codex IDE 扩展适合什么场景

优先使用 IDE 的情况:

  • 正在阅读或修改某个文件
  • 需要针对选中代码提问
  • 需要让 Codex理解当前打开的文件
  • 想在源码旁直接查看修改
  • 需要快速接受、撤销或继续调整改动
  • 正在学习不熟悉的类、函数或模块
  • 希望把较长任务从编辑器交给 Codex 云端

典型请求:

解释我选中的这个方法,并指出它有哪些调用入口。
重构当前文件中的重复逻辑,不改变对外行为。
根据当前错误位置,追踪并修复相关测试。

8. Codex IDE 扩展安装和打开

8.1 支持的编辑器方式

  • Visual Studio Code:安装 Codex 扩展
  • Cursor:使用兼容的 Codex 扩展
  • Windsurf:使用兼容的 Codex 扩展
  • Xcode:在 Coding Assistant 中选择 Codex Agent
  • JetBrains IDE:在 AI Chat 中选择 Codex

8.2 VS Code、Cursor 和 Windsurf

  1. 从扩展市场安装并启用 Codex。
  2. 完成登录。
  3. 打开需要处理的项目。
  4. 点击侧边栏中的 Codex 图标。
  5. 如果图标不可见,打开命令面板。
  6. 执行:
Codex: Open Codex Sidebar

8.3 Xcode

  1. 打开 Coding Assistant。
  2. 新建聊天。
  3. 选择 Codex 作为 Agent。

8.4 JetBrains IDE

  1. 打开 AI Chat。
  2. 选择 Codex。
  3. 在当前项目中开始任务。

9. Codex IDE 的使用方式

9.1 使用当前文件作为上下文

打开目标文件,然后询问:

解释当前文件的职责,并指出它依赖的主要组件。

IDE 中已经打开的文件可以减少重复描述路径和代码内容。

9.2 使用选中代码

选中一段代码后询问:

解释选中代码为什么可能出现并发问题。
在不改变行为的前提下简化这段代码。

9.3 进行聚焦修改

只修改当前方法:当参数为空时返回明确错误,不调整其他逻辑。

IDE 更适合这种范围清晰、需要立刻查看结果的小改动。

9.4 在源码旁审查修改

Codex 修改完成后,可以直接查看:

  • 修改摘要
  • 受影响文件
  • 具体变化行
  • 修改原因
  • 验证结果

可以继续要求:

保留第一个文件的修改,撤销第二个文件的修改。

9.5 把大任务交给云端

较长任务可以选择云端执行:

  1. 在 IDE 中描述任务。
  2. 选择云端或委派选项。
  3. 继续本地工作。
  4. 任务完成后回到 IDE 审查结果。

快速、需要频繁互动的修改更适合本地;耗时较长且边界明确的任务更适合云端。


10. 两者共享的能力

CLI 和 IDE 并不是两套完全独立的配置,它们可以共享:

  • ChatGPT 或 Codex 身份登录
  • 全局 ~/.codex/config.toml
  • 当前项目的 .codex/config.toml
  • 项目 AGENTS.md 指令
  • 同一 Codex 主机上的 MCP Server 配置
  • 模型、推理强度和权限相关设置
  • 当前项目中的代码、构建工具和 Git 仓库

项目级配置和 AGENTS.md 可以让 CLI 与 IDE 遵守一致的项目规范。


11. 需要注意的不完全一致之处

插件

Codex CLI 支持 /plugins 浏览器,可以浏览、安装和管理插件。

Codex IDE 扩展目前不提供插件浏览和安装入口。如果插件能力需要用于 Codex,应先通过 Codex CLI 或 Codex 桌面版安装,并确认该插件能力在目标界面受支持。

自动化

CLI 支持 codex exec,可以用于脚本和 CI。

IDE 依赖编辑器交互,不适合作为无人值守自动化入口。

编辑上下文

CLI 主要从当前工作目录和仓库理解上下文。

IDE 会额外利用当前打开的文件、选中代码和编辑器状态,因此聚焦代码问题时通常更省描述。

修改审查

CLI 更适合从 Git diff、提交或分支角度进行审查。

IDE 更适合在代码旁逐行查看和调整修改。


12. 应该选择哪一个

使用 CLI

如果你的需求是:

  • “分析整个仓库”
  • “运行测试并修复失败”
  • “执行批量重构”
  • “检查 Git diff”
  • “安装插件或配置开发工具”
  • “把 Codex 用在脚本或 CI 中”

使用 IDE

如果你的需求是:

  • “解释当前代码”
  • “修改选中的方法”
  • “边写代码边向 Codex 提问”
  • “直接在源码旁审查修改”
  • “快速接受、撤销或继续调整改动”

两者结合

推荐的日常组合:

  1. 在 IDE 中完成聚焦编码和就地审查。
  2. 在 CLI 中运行仓库级分析、测试和 Git 检查。
  3. 使用共享的 AGENTS.md、config.toml 和 MCP 配置保持行为一致。

13. 示例工作流

小型 Bug

使用 IDE:

  1. 打开报错文件。
  2. 选中相关方法。
  3. 让 Codex 定位并修复问题。
  4. 在代码旁审查修改。

跨模块 Bug

使用 CLI:

  1. 在项目根目录启动 codex。
  2. 要求追踪完整调用链。
  3. 让 Codex检查所有调用方。
  4. 运行相关测试。
  5. 使用 /review 检查修改。

新功能开发

组合使用:

  1. CLI:分析模块结构和影响范围。
  2. IDE:实现和迭代核心代码。
  3. CLI:运行完整测试和代码审查。

自动化检查

只使用 CLI:

codex exec "检查当前分支相对 main 的修改,输出发布风险摘要"

14. 使用建议

  • 从项目根目录启动 CLI,避免工作范围不完整。
  • 在 IDE 中选中最相关的代码,减少无关上下文。
  • 要求修改代码时,明确是否允许运行命令和测试。
  • 大改动前后保留 Git 检查点。
  • 仓库规范写入 AGENTS.md,不要在每次对话中重复。
  • 全局 Codex 设置放入 ~/.codex/config.toml。
  • 项目专用设置放入受信任项目的 .codex/config.toml。
  • IDE 负责快速交互,CLI 负责终端和自动化;不必强行只选一个。

15. 一句话总结

Codex CLI 是终端优先的仓库操作和自动化工具;Codex IDE 扩展是编辑器优先的代码上下文、聚焦修改和就地审查工具。

日常开发优先在 IDE 中处理眼前代码,在 CLI 中完成仓库级分析、测试、审查和自动化。


参考资料