我大概是2025年初开始重度使用Codex CLI的,到现在大半年过去,装过的插件不下二十个,真正留下来每天都用的就这10个。这篇文章就是一个含提示词的插件清单,我会按用途拆开讲清楚每个插件解决什么问题、怎么配、配合什么提示词用,最后再把我平时高频使用的那批提示词直接贴出来。正在用Codex或者准备入坑AI编程工具的开发者,应该都能从这里捞到点能直接抄的东西。
先把概念对齐一下:这里的Codex指的是OpenAI出的那个跑在终端里的AI编程代理,你让它"修一下登录页的样式问题",它会自己定位代码、执行命令、改完文件给你一份变更说明。但原生Codex默认很"裸",比如它不会记住上次聊到哪,也默认只能连官方模型端点。插件的作用,就是把这些缺失的能力补上。
1. 为什么我给Codex装了这么多插件,以及怎么选
1.1 Codex原生能力边界:缺的到底是什么
拿我自己最常用的四个场景举例。
- 上下文管理:Codex每次会话都是新开的,它不知道你上周和它讨论过什么决策,除非你把文件内容或prompt反复粘贴进去。
- 模型绑定:默认只能接OpenAI官方端点,想试试更便宜的国产模型或者公司内部模型,原生不支持一键切换。
- 命令安全:Codex默认会尝试执行终端命令,比如
rm -rf这种命令理论上它也可能帮你跑,原生没有确认和拦截机制。 - 工程习惯:自动代码审查、生成规范commit信息、更新文档这些事,Codex默认不做,需要你每次写prompt反复交代。
所以插件存在的意义,就是把这些"缺的能力"补上。说得生活化一点,Codex像是一个底盘很好的助理,插件就是给他的工具箱和记事本:有的负责让他记住事情,有的负责让他动手之前先请示,有的负责按团队规范办事。没有这些辅助件,助理再聪明也只能靠你一遍遍重复交代。
1.2 Codex的插件机制到底是什么
聊插件之前,得先知道Codex到底通过哪些点扩展能力。我实际用下来的感受是,Codex的扩展主要走四条路:
- hook脚本:在会话启动、命令执行前、会话结束这些事件节点触发外部脚本,很多上下文注入和安全拦截插件本质就是hook。
- 配置文件:
~/.codex/config.toml以及项目根目录下的codex.md,可以塞系统提示词、模型参数、权限规则。 - MCP(Model Context Protocol):通过MCP server给模型增加外部工具和数据源,适合接入知识库、数据库、内部API。
- 命令包装器:像cc-switch这类工具,本质是在Codex外层包一层配置管理,切换完模型端点再启动Codex。
理解这四条路之后,你再看插件就不会被花哨的名字迷惑了。说到底,它们只是在不同的扩展点上做了封装。
1.3 插件选型的三个原则
装了二十来个插件又卸了一半之后,我总结出三个原则:
- 源码可见是底线。能给Codex加能力的插件,必然会拿到你的代码库访问权和命令执行权,所以你至少要看得到它的源码、看star数量和issue响应速度。没有开源仓库的插件,再方便我也不装。
- 作用域越小越稳。插件之间一旦冲突,排查的时间可能比省下的时间还多。所以宁可多拆几个干一件事的小插件,也别装一个什么都管的全家桶。
- 跟上Codex版本更新。Codex迭代非常快,一个月可能发好几个版本,插件作者如果跟不上,你升级Codex之后插件就会静默失灵。我一般在升级前先看一眼关键插件的release时间。
这三个原则也正好是下面这份清单的筛选标准:能留下不为别的,就是真的解决了某个高频痛点,而且维护状态稳定。
2. 我装完就没卸过的10个插件(按用途分组)
按用途分四组:模型与端点管理、上下文与记忆、工程效率、提示词与文档。开头放一张速览表,后面逐个说。
| 插件/工具 | 用途 | 对应章节 |
|---|---|---|
| cc-switch | 切换Codex模型端点 | 2.1 |
| endpoint-health | 端点健康检查与降级 | 2.1 |
| codex-memory | Codex长期记忆 | 2.2 |
| context-builder | 代码库上下文聚合 | 2.2 |
| session-compressor | 会话摘要与续接 | 2.2 |
| codex-review | 自动代码审查 | 2.3 |
| commit-helper | 生成commit信息 | 2.3 |
| safe-exec | 危险命令拦截确认 | 2.3 |
| prompt-kit | 提示词统一管理 | 2.4 |
| codex-docs | 自动更新文档 | 2.4 |
这个清单以我自己的实际配置为基准,有些是社区开源项目,有些其实是我自己写的hook脚本。你按功能关键词去搜,基本都能在社区里找到类似方案。
2.1 模型与端点管理:cc-switch和endpoint-health
第一个要推荐的是cc-switch,解决的是"怎么让Codex在多个模型端点之间自由切换"的问题。官方模型虽然好用,但很多场景你希望走别的端点,比如在DeepSeek、通义、Kimi这些兼容模型里选一个更便宜的,或者某个端点出问题时切回官方。cc-switch就是干这个的——你维护好几套endpoint配置,一键切换,它会帮你把配置写进Codex的config。
实际用起来,操作路径大概是这样的:先安装工具(社区常见的是通过npm或brew安装),然后在界面里添加配置,填一个base_url和api key。这里值得注意,base_url一定要填兼容OpenAI接口的完整地址,填错后面全废。配置保存后,选择某一套配置,再回终端发起请求。切换完我习惯新开一个Codex会话,而不是在旧会话里继续,因为配置可能不会重新加载。
这个插件能帮我日常省下的成本挺直观。探索性任务用便宜模型,写代码的关键路径切回官方强模型,一个月下来token开销能降不少。
再说一个我同样没卸过的小工具endpoint-health。它会定期给当前端点发一个极小的探针请求,统计响应时间和错误率。配置里可以设置阈值,比如响应超过2秒算异常,连续3次失败就提示切到备用端点。这东西本身不写代码,但它能避免你在一个已经挂掉的端点上反复消耗时间。模型端点偶尔抽风是常态,自动降级比人工发现快得多。
2.2 上下文与记忆增强:记住上次聊到哪
第三个插件codex-memory,解决的是Codex不记事的问题。它会在本机维护一个很小的知识库,可以是一堆markdown文件,也可以是SQLite。每次Codex完成一个重要任务后,我让它把结论、团队约定、坑点追加到记忆文件里;下一次会话开始,插件会把这些记忆自动塞进system prompt的上下文。用了一阵子你会发现,Codex越来越像一个熟悉项目的老同事,而不是每次都是新来的实习生。
它的实现并不复杂:本质上是在Codex会话启动事件上挂一个hook脚本,读取~/.codex/memory/目录下与当前项目同名的md文件,把内容拼进上下文。我会按项目拆分记忆文件,避免不同项目的内容互相污染。顺便说一句,记忆文件一定要定期清理,否则塞满了过时结论,反而会让Codex输出质量下降。
第四个插件context-builder,解决的是"大型代码库上下文塞不下"的问题。它扫描整个仓库,生成一份精简版的聚合上下文文件,里面只保留目录结构、关键模块、外部接口、配置说明。然后让Codex基于这份文件工作,而不是让它自己去翻几百个文件。多模块工程里,这比直接甩整个仓库路径给Codex要高效得多。
我通常把context-builder做成一个仓库级扫描脚本,跑完输出一份context.md,文件大小控制在1000字以内。超出就说明摘要还不够精炼。每次会话开头,我先让Codex读取这份文件,再开始派任务。配合的上下文聚合提示词我也固定在用了,放在第三章。
第五个session-compressor,是我每天都会用的。它在会话结束时自动生成一份结构化摘要,包括任务目标、已完成、待办、坑点、下一步建议。下一次会话直接引用这份摘要,进度不会断。虽然每个任务都开新会话,但整体是连贯的,token花费也降了不少。长会话是最烧钱的,能省则省。
2.3 工程效率增强:审查、提交、安全执行
这一组要说的三个插件,基本都是把Codex从"写代码的小工"升级成"带规范意识的队友"。
codex-review是我最喜欢的插件之一。它基于当前的git diff,调起Codex做一次代码审查,输出结构化评审意见:阻塞问题、建议优化、风格问题、安全隐患。我一般会在提交PR之前跑一次,把明显问题提前解决掉。它提供的价值不光是多一双眼睛,更重要的是让评审意见稳定在一个固定标准上,而不是每次看心情输出。
commit-helper更轻量,但作用很实在。它读取git diff --staged,让Codex总结变更,再按conventional commit规范生成提交信息。我配置了两套模板:正式项目用英文的fix: xxx、feat: xxx格式,个人项目用简洁中文。用久了之后提交历史干净很多,后面追问题也方便。
safe-exec这一类命令执行守门插件,我强烈建议每个人都装。Codex为了干活需要执行终端命令,但默认全信任的模型有时候会提出非常危险的操作,比如直接删目录、强制推送。这个插件做的事很简单:拦截命令执行请求,命中危险规则就要求你二次确认。别嫌弹窗烦,一次误操作可能让你后悔一晚上。我见过有人因为嫌麻烦把它卸了,结果一个周末的改动被git reset --hard清空,教训太深刻了。
2.4 提示词与文档:让常用能力即取即用
第九个是提示词管理器prompt-kit。它把高频使用的prompt模板集中管理,你在终端里通过快捷命令,把"测试生成、代码解释、Bug定位、重构"这些模板一键插入当前会话。它不改变Codex本身,但它能把你从反复输入同样长段prompt里解放出来。
我自己的prompt-kit里大概躺着20多条固定模板,每条都打磨过好几轮。一条好提示词,有时候比多装三五个功能插件更能提升输出质量。这套插件用起来很轻,核心就是一个纯文本目录,每条prompt是一个独立的.md文件,文件名就是快捷键。新增一条提示词,直接往目录里丢一个文件就行。
第十个codex-docs,让我省下了不少写文档的时间。每次代码变更之后,它对比变更内容,生成或更新对应的README、API文档章节。要注意的是,它不负责重写大文档,只在接口或行为变化时精准更新对应章节。配置里要设置好文档范围,否则它会跑到无关文件里乱改。
3. 附上我常用的8个高频提示词(可直接抄)
这一章是全文最"抄作业"的部分。下面8条提示词,都是我自己项目里打磨过的,可以直接复制到Codex会话里用,也可以按需删减。
3.1 代码审阅提示词
你现在是一名资深代码审查专家,请基于我提供的git diff进行审查。 请按以下格式输出: 1. 【阻塞问题】会导致bug、性能或安全隐患的问题 2. 【建议优化】不具备阻塞性但值得改进的点 3. 【风格/规范】不符合项目约定的地方 要求: - 优先关注变更内的问题,不延伸讨论无关代码 - 每个问题必须说明原因,给出修改建议 - 如果问题不存在,直接写"无"3.2 重构提示词
请对目标函数/模块进行重构,约束如下: - 保持对外接口完全不变,所有现有调用方不受影响 - 拆分单函数职责,单个函数体控制在30行内(例外需说明) - 优先选择标准库和项目已有依赖,不新增不必要依赖 - 重构完成后,给出核心路径的测试建议 - 输出要展示变更前后的关键代码片段3.3 测试生成提示词
请为目标代码生成一组单元测试: - 覆盖正常输入、边界值、异常输入三类场景 - 每个测试用例必须包含明确的断言 - 对涉及外部依赖的部分使用mock,不发起真实网络请求 - 使用项目已有的测试框架和风格 - 测试文件名与被测文件对应,放在同一目录 输出请直接给出完整测试代码,不解释过程。3.4 Bug定位提示词
我的模块出现了以下问题:{粘贴报错信息或错误表现} 请按以下顺序排查: 1. 从报错栈定位到具体文件和函数 2. 分析最可能的三类原因,并分别说明证据 3. 建议在代码中加一个最小可复现的验证步骤 4. 不要直接给出最终修复,先确认原因后再动手3.5 上下文聚合提示词
请基于我提供的项目结构信息,生成一份聚合上下文文件: - 保留目录树中与业务核心相关的部分,省略构建产物和第三方依赖 - 列出所有对外暴露的函数、API、配置项 - 标注模块之间的依赖关系 - 内容控制在1000字以内,供另一个会话的Codex快速理解项目3.6 会话摘要提示词
请将当前会话的关键内容整理为结构化摘要,包含: - 任务目标:本次要解决的问题 - 已完成:已经确认的改动与决策 - 待办:尚未完成的事项 - 坑点:本次踩到的关键问题及规避方法 - 下一步建议:下次会话应该从哪里继续 摘要控制在300字以内,后续会直接注入新会话。3.7 模型自检提示词
请执行一次基础能力自检: 1. 用一句话说明你当前使用的模型和配置端点 2. 解析一段包含中英文混合的复杂markdown,检查返回格式是否稳定 3. 读取项目里任意一个核心配置文件,说明其作用 4. 如果上述任一步骤异常,请明确说出异常现象3.8 文档更新提示词
请对比git diff,更新对应模块的文档: - 修改/新增的公开接口,必须在文档中体现 - 变更行为的地方,标注"行为变更"并说明原因 - 保持原有文档风格和结构,不做无关重写 - 只输出需要更新的文档片段,给出对应文件名这几条提示词的使用技巧是:不要一次性把所有约束都堆进去,按任务类型选2到4条关键约束就够了。我踩过的坑是刚开始喜欢把提示词写到几百字,结果模型表现反而平均更差,因为无关信息干扰了它对核心目标的理解。
4. 常见问题与排查技巧实录
插件装得多了,踩坑是免不了的。这一章记录几个我实际遇到、而且社区里经常被问到的典型问题。
4.1 cc-switch切换后local proxy报错的完整排查流程
用cc-switch时,社区里很多人会遇到这条报错:local proxy failed while handling codex endpoint /responses。我第一次看到也被吓了一跳,以为是什么大问题,后来一步步排查发现,这个报错只是在说本地配置的转发层在处理/responses接口时挂了,跟外网通不通没有任何关系,纯粹是本地开发环境配置层面的问题。
排查按下面四步走:
- 第一步,看本地转发层的进程是否在运行。很多时候是切完配置后转发服务崩了,重启一下就好。
- 第二步,检查base_url配置。最常见的坑是地址末尾少了版本路径,或者多写了一层路径,导致
/responses接口404。 - 第三步,查端口占用。本地转发服务默认监听某个端口,如果被其他进程占了,请求会全部失败。
- 第四步,确认配置里没有混入冲突项,比如同时写了两套api key、同时启用了旧版completions和新版responses接口。
我自己的习惯是,把base_url、api key和模型名三项单独抄在一个文本里,每次切换后逐项核对。一分钟的事,省得反复查日志。
4.2 插件装了但没生效
这类问题九成是三个原因:配置文件路径不对、hook脚本没有可执行权限、插件输出被其他插件覆盖。我见过有人装好插件后忘记chmod,在macOS或Linux上脚本根本没有执行权限,Codex静默忽略了它。排查方法很简单:在终端手动跑一遍插件脚本,看报错就知道问题在哪。
4.3 Codex升级后插件失灵
次数遇到不少。我的处理方案是:升级前先看一眼生产环境里关键插件的repo分支,确认它们是否已经适配新版本;升级后第一时间跑一遍最常用的三个场景,也就是上下文注入、代码审查、提交信息生成。有问题就回滚Codex版本,等插件更新再升。别为了追新版本把工作流搞挂。
4.4 模型输出质量明显变差
大多不是模型本身退化,而是上下文被污染或记忆文件塞满了低质量内容。我的排查顺序是:先清掉当次会话的记忆注入,跑一次独立会话对比;再检查记忆文件里是不是混入了错误结论;如果还不行,再考虑切换端点。很多"AI变笨了"的抱怨,最后查下来都是自己的prompt或记忆库出了问题。
4.5 费用太高怎么办
Codex这类工具如果用默认配置跑大任务,token消耗真的惊人。我的办法有三条:一是用session-compressor拆分任务,避免一个会话聊太久;二是用全局上下文体替换完整代码库,减少重复输入;三是在探索需求的时候用便宜端点,到真正动手改代码时再切回强模型。
下面把这一章的问题整理成一张速查表,方便随时翻。
| 问题现象 | 常见原因 | 优先检查项 |
|---|---|---|
| 切换端点后报local proxy错误 | 本地转发层未启动/端口占用/base_url错误 | 转发服务日志、base_url配置 |
| 插件装了像没装 | 脚本无执行权限/config路径不对 | 手动运行插件脚本、检查config目录 |
| Codex升级后插件失效 | 插件未适配新版本 | 插件repo的release记录 |
| 输出质量变差 | 上下文污染/记忆文件问题 | 独立会话对比、清记忆 |
| 费用突然暴涨 | 长会话/重复注入大段上下文 | 用摘要续接、压缩上下文 |
5. 装插件这件事,我的一些体会
5.1 什么样的插件值得长期留
我自己的标准有三条:第一,每周至少用三次,否则就是伪需求。第二,出了问题你能在30分钟内定位到原因,源码混乱的插件果断换。第三,它解决的是你真实踩到的坑,而不是你想象中会踩的坑。用这个标准判断,很多花里胡哨的插件自然就淘汰了。
5.2 给刚开始接触Codex的人几点建议
如果你刚开始接触Codex,建议先别急着装插件。先用一两个星期的原生Codex,把你的真实工作流跑通,记下痛点。然后按这篇文章第二章的清单,挑对应的插件装。装的时候一个接一个来,每装一个就用两天,确认没问题再加下一个。我见过有人一上来就装十几个插件,结果整个下午都在配插件、调prompt,真正的代码一行没写。
最后分享一个我的习惯:每周五下午花二十分钟翻一遍Codex的会话记录和记忆文件,看看哪些任务反复出现、哪些提示词效果不好,该改的改,该删的删。工具永远是服务干活效率的,别让配工具变成逃避写代码的理由。