乐于分享
好东西不私藏

Codex App Windows 版高级教程(五):Automations + Plugins,让 Codex 自己干活、把能力打包分享

Codex App Windows 版高级教程(五):Automations + Plugins,让 Codex 自己干活、把能力打包分享

上一篇我们聊了 Skills 和 MCP——教 Codex 学本事、连外脑。但有一个问题还没解决:每次都要你手动发 Prompt,Codex 才动。

你想让它每天早上自动扫一遍最近的提交,找找有没有明显的 bug?想让它每周自动优化一下你写的 Skills,变得越来越好用?想让它定时帮你生成代码变更摘要,你回来看结果就行?

这就是 Automations 要干的事——给 Codex 设一个闹钟,让它按时自己干活,干完了把结果放在 App 里等你审阅就行。

至于 Plugins,3月27号 openAI 宣布在 codex app 里面开放plugins功能。

我电脑里面启动codex后确实会出现这样的提示

只是我的windows版本界面出来后又会出现skills,之前闪现的那个plugins按钮没了,不知道怎么回事,我猜测是没完全放开吧或者是UI界面统一的问题,毕竟我的版本都是最新的了,后面再说。

那它是用来解决的是另一个问题:你花了半天配好了 Skills + MCP + 各种设置,新来的同事问你”你怎么配的”——你总不能每次都手把手教一遍吧?Plugins 就是把你配好的东西打成一个安装包,别人一键装好就能用。

这篇文章把这两个功能从零讲透。


Automations:给 Codex 设定时任务

先理解它在干什么

最直白的解释:Automations 就是 Codex 版的”定时任务”。你设定一个时间表和一个 Prompt,Codex 到点了自己跑,就是会放在 App 侧边栏。

跟你在服务器上设 cron job 是一回事,只不过执行者从一段脚本变成了一个 AI Agent。

几个关键点先说清楚:

在 Git 仓库里,Automation 可以运行在本地项目或后台 worktree;非 Git 项目则直接运行在项目目录。

选 worktree 模式的好处是它在一个独立的文件副本里干活,不会影响你正在写的代码。如果你选了本地项目模式或者项目本身不是 Git 仓库,要小心一点,因为它可能会改到你正在编辑的文件。


怎么创建一个 Automation

打开 Codex App,侧边栏里找到 Automations 面板,点创建。你需要填两样东西:

时间表(Schedule): 多久跑一次。可以选每天、每周、自定义间隔。

Prompt: 每次跑的时候执行什么任务。就是你平时手动给 Codex 发的那种 Prompt,写在这里之后它会自动执行。

就这么简单。没有配置文件,没有 TOML,没有 JSON——在 App 界面上点几下就完了。

到点给我自动执行了,但是这里我想强调一下,如果你的任务很复杂的话,它会在对话框里面就行执行很久,然后会把上下文很快占满,这个时候就会自动压缩背景,这个过程很痛苦,因为我好几次自动压缩都是很久很久都不行,这个问题不知道官方什么时候能更好的解决一下。

任务完成后再线程里面可以看到它得到的结果,以后你每天上班前就可以获取到最新的AI技术热门信息了。

还有你也可以通过定时任务模板来创建你的任务,点击use_template


实战一:每天自动扫描最近提交,找 bug

这是 Automations 最实用的场景之一。你每天提交代码,但不可能每次都仔细做 Code Review。设一个每天跑的 Automation,让 Codex 帮你兜底。

创建 Automation,时间表设为每天一次,Prompt 写:

查看最近 24 小时内我提交到 origin/main 的代码改动。针对每个改动,重点检查:1. 有没有空指针风险2. 有没有吞掉异常(catch 了但没 log 也没 throw)3. SQL 有没有注入风险(MyBatis 里用 ${} 而不是 #{})4. @Transactional 注解有没有用在 private 方法上(事务不会生效)如果没发现问题,直接归档,不用报告。如果发现了问题,列出文件路径、行号和修复建议。

每天早上你打开 Codex App,看一眼对应目录的线程——有问题就处理,没问题就是绿灯,心里踏实。


实战二:每天自动生成代码变更摘要

团队里其他人改了什么代码,你不可能每天去翻 Git log。设一个Automation 帮你生成每日摘要。

Prompt:

查看最近 24 小时内 origin/main 上的所有提交。生成一份简报,格式要求:- 按功能模块分组(不要按提交者分组)- 每个模块写一段话说明改了什么、为什么改- 如果有关联的 PR,附上 PR 链接- 跳过纯格式化、纯注释的提交最后用一句话总结今天最重要的变更。

这个对 Team Lead 来说特别有用——不用自己翻代码,每天看一份自动生成的简报就够了。


实战三:自动优化你的 Skills

这个玩法很有意思——让 Codex 自己改进自己的 Skills。

上一篇我们聊了怎么写 Skills。但 Skills 写好之后不是一成不变的,用着用着你会发现有些指令写得不够清楚、有些场景没覆盖到。手动去改太麻烦了,让 Automation 自动帮你优化。

Prompt:

扫描最近一天 ~/.codex/sessions 里的会话记录。如果发现:- 某个 Skill 被调用后效果不好(用户做了大量修正或重试)- 有重复出现的任务模式还没有对应的 Skill那就:- 更新有问题的 Skill(只改个人级的,不动项目级的)- 如果有值得做成 Skill 的新模式,创建一个新 Skill不要为了改而改——只有真正有改进空间的时候才动手。改完之后告诉我改了什么、为什么改。

这个 Automation 跑一段时间之后,你的 Skills 会越来越准确、越来越好用,因为它在根据你的实际使用情况持续迭代。

有个注意点:~/.codex/sessions/这个目录通常在当前工作区之外

如果你的 Automations 默认权限模式是 workspace-write,访问这个路径很可能会被拦截;如果默认模式是 full access,权限会更大,但风险也会明显升高。

更稳妥的做法不是直接假设它一定能访问,而是先在普通线程里手动跑通,再决定是否调整默认权限、工作区范围或 rules。关于rules下面会说。


实战四:Automation + Skill 组合——自动修复你自己引入的 bug

这个是官方推荐的高级玩法。分两步:

第一步:先创建一个 Skill。

在你的个人级 Skills 目录创建 .agents/skills/recent-code-bugfix/SKILL.md

---name: recent-code-bugfixdescription: 查找并修复当前作者最近一周内引入的 bug。当 Prompt 为空或要求检查最近提交的问题时触发。---# 最近代码 Bug 修复## 工作流程### 1. 确定范围用 git log --since=1.week --author=<当前用户> 找到最近一周的提交只关注这些提交涉及的文件### 2. 找到具体的问题优先找能复现的失败(测试不过、lint 报错、运行时异常)确认问题确实是你自己的提交引入的,不是历史遗留问题如果没找到问题,直接报告"没有发现问题"然后结束### 3. 修复只改必要的代码,不做额外的重构或美化保持和项目现有代码风格一致### 4. 验证跑相关的单元测试确认修复有效如果没法跑测试,说明原因和验证方式### 5. 报告说清楚 bug 的根因、修复了什么、怎么验证的明确指出是哪个提交引入的问题

第二步:创建 Automation 调用这个 Skill。

时间表设为每天一次,Prompt 写:

检查我最近 24 小时的提交,执行 $recent-code-bugfix

这样每天 Codex 会自动检查你今天提交的代码有没有引入新 bug,找到了就自动修,注意这个最好是在worktree里面工作,这样你可以方便的合到local里面去,而不用担心它乱修复BUG。


Automations 的安全边界

这块必须说清楚,因为 Automation 是无人值守的——没有人盯着它干活。

Automation 固定以默认沙箱设置运行,输入框下方的 permissions selector 只影响当前线程;Automations 继承的是全局默认权限设置。默认值可以在 config.toml 里配置。

在沙箱下,如果工具调用需要修改工作空间外的文件、访问网络、或者操作电脑上的应用,这个调用会直接失败——不会弹窗问你要不要放行,因为没人盯着。

这意味着 Automation 会按你的默认权限配置运行。对于代码审查、生成摘要这类分析任务,默认权限通常已经够用;但如果任务需要访问工作区外文件、联网或调用系统能力,就要额外关注权限边界。比如可以靠 Rules来开口子。

Rules 是 Codex 的命令审批机制,可以选择性地允许特定命令在沙箱外运行。规则文件放在 

~/.codex/rules/ 目录下,用 Starlark 语言写(语法接近 Python)。你可以给每条命令设三种策略:allow(允许在沙箱外运行)、prompt(每次要确认)、forbidden(禁止执行)。

举个例子,你想让 Automation 能跑 git log 和 git diff 但不能跑 git push,在 ~/.codex/rules/default.rules 里这么写:

prefix_rule(    pattern = ["git", "log"],    decision = "allow",)prefix_rule(    pattern = ["git", "diff"],    decision = "allow",)prefix_rule(    pattern = ["git", "push"],    decision = "forbidden",    justification = "Automation 不应该直接 push 代码",)

多条规则匹配同一个命令时,Codex 取最严格的那条(forbidden > prompt > allow)。写完之后可以用 codex execpolicy check 命令验证规则是否按预期生效。

所以整个安全模型是这样的:

沙箱负责兜底(默认拦截所有越权操作),Rules 负责开口子(精确放行你信任的命令)。对 Automation 这种无人值守的场景来说,这个组合比单纯选一个”完全访问”模式安全得多。

另一个注意点:Automation 频繁跑会创建大量 Worktree。 如果你选的是 worktree 模式,每次跑都是一个新的 worktree,时间长了会占磁盘空间。记得定期归档不需要的 Automation 运行记录。


先手动测,再设定时

这个建议很重要:不要一上来就设定时任务。先把 Prompt 在普通对话里手动跑一遍,确认效果没问题了,再复制到 Automation 里。

需要确认的事情:Prompt 写得够不够清晰?Codex 有没有按你的预期执行?用了哪些工具,表现正常吗?输出的内容是你想要的格式吗?沙箱模式对不对,会不会被权限拦截?

手动跑通了,再设定时,省得白跑半天发现 Prompt 有问题。


Plugins:把你的配置打成安装包

先搞懂 Plugin 和 Skill 的关系

很多人看到 Plugins 第一反应是”这不就是 Skill 吗”。不完全是。

Skill 是单个技能。一个 SKILL.md 文件,教 Codex 怎么做某一件事。

Plugin 是技能包。它可以把多个 Skills + MCP 配置 + App 集成打包成一个可安装的单元。

打个比方:Skill 就像一门课程(比如”Java 代码审查”),Plugin 就像一个课程包(把”代码审查”+”单元测试”+”Sentry 错误监控”打包在一起,叫”Java 后端开发套件”)。

什么时候用 Skill?你在一个项目里迭代、自己用、或者还在试验阶段。

什么时候用 Plugin?你想把同样的 Skills 和配置分享给团队里的其他人,或者跨多个项目复用。

简单说:先用 Skill 迭代,成熟了再打包成 Plugin 分发。

有一点要提前说:Codex App 的 UI 目前把 Skills 和 Plugins 混在同一个页面展示,也或许是我的windows还没灰度到。英文界面侧边栏应该写的是”Plugins”,但是我的页面标题写的是”Skills”;读者朋友如果你们的出现了plugins,可以直接尝试plugins功能。


Plugin 的文件结构

一个 Plugin 的核心就是一个文件夹,里面有一个必须的 plugin.json 清单文件:

my-plugin/├── .codex-plugin/│   └── plugin.json        # 必须的:插件清单├── skills/                 # 可选:打包的 Skills│   └── java-review/│       └── SKILL.md├── .mcp.json               # 可选:MCP Server 配置├── .app.json               # 可选:App 集成配置└── assets/                 # 可选:图标、截图    ├── icon.png    └── logo.png

plugin.json 是唯一必须的文件,其他都是可选的。但一个有实际价值的 Plugin 至少要包含一个 Skill 或一个 MCP 配置。

这是我用cli来创建的Gmail的插件,目录如上

如果某个 Codex Plugin 包含 Gmail app 集成,Codex 可能会在安装或首次使用时引导你到 ChatGPT 完成该 app 的登录授权。

然后我在ChatGPT里面提问:

查一下我最近 24 小时里最重要的 5 封Gmail 邮件

它给的回复是刚刚cli过来的插件验证是给codex app 用的,

但是我这个codex app 确显示连接不了,我个人观察可能是跟我上面说的我的灰度没到有关。

先说明一下:后面部分主要讲 Plugins 的官方机制、目录结构和配置方式。

由于我当前这台 Windows 版 Codex App 还没有独立的 Plugins 入口,我这边暂时也没法完整实测 plugin marketplace、安装入口和启用流程。所以下面这部分更适合看成“官方设计 + 配置示例 + 本地准备思路”,而不是我当前环境下已经完整跑通的点击教程。等后面版本正常了再尝试这个。


实战五:用 $plugin-creator 创建你的第一个 Plugin

和 Skill 一样,Codex 自带了一个创建器。官方内置了 Plugin Creator 能力,当前文档常见的调用写法是在 Prompt 里输入:

$plugin-creator

它会引导你完成整个创建过程:Plugin 叫什么名字、包含哪些 Skills、需不需要 MCP 配置。创建完之后还会帮你生成本地 Marketplace 配置,让你能在 Plugin 目录里看到自己的插件。

这是最快的上手方式。


实战六:手动创建一个 Java 后端开发套件 Plugin

如果你跟着上一篇文章配了 java-review 和 java-unit-test 两个 Skills,现在我们把它们打包成一个 Plugin,方便团队里其他人一键安装。

第一步:创建 Plugin 文件夹结构。

# 在你想存放 Plugin 的地方创建mkdir -p java-backend-kit\.codex-pluginmkdir -p java-backend-kit\skills\java-reviewmkdir -p java-backend-kit\skills\java-unit-test

第二步:写 plugin.json 清单。

创建 java-backend-kit/.codex-plugin/plugin.json

{"name""java-backend-kit","version""1.0.0","description""Java 后端开发工具包:包含代码审查和单元测试两个 Skill,适用于 Spring Boot + MyBatis + Redis 技术栈。","author": {"name""你的名字","email""your@email.com"  },"keywords": ["java""spring-boot""mybatis""code-review""unit-test"],"skills""./skills/","interface": {"displayName""Java 后端开发套件","shortDescription""代码审查 + 单元测试,Spring Boot 团队专用","longDescription""包含 Java 代码审查(SQL 注入、事务、缓存一致性检查)和单元测试生成(JUnit 5 + Mockito + AssertJ)两个 Skill。","developerName""你的名字","category""Development","capabilities": ["Read"]  }}

第三步:把你之前写好的 Skills 复制进来。

把上一篇文章里写的 java-review/SKILL.md 和 java-unit-test/SKILL.md 复制到 Plugin 对应的 skills/ 目录下。

第四步:注册到本地 Marketplace,让 Codex 能看到它。

创建 ~/.agents/plugins/marketplace.json(个人级 Marketplace):

{"name""my-plugins","interface": {"displayName""我的插件"  },"plugins": [    {"name""java-backend-kit","source": {"source""local","path""./java-backend-kit"      },"policy": {"installation""AVAILABLE","authentication""ON_INSTALL"      },"category""Development"    }  ]}

注意 source.path 是相对于 Marketplace 文件所在目录的路径。如果你的 Plugin 文件夹放在别的地方,路径要相应调整。

第五步:把 Plugin 文件夹放到 Marketplace 能找到的位置。

# 把 Plugin 复制到个人目录mkdir -p "$HOME\.codex\plugins"Copy-Item -Recurse java-backend-kit "$HOME\.codex\plugins\java-backend-kit"

然后更新 marketplace.json 里的路径:

"path""./.codex/plugins/java-backend-kit"

第六步:重启 Codex App。

打开插件相关入口,你应该能看到”我的插件”这个 Marketplace,里面有你刚创建的”Java 后端开发套件”。点安装就行。

安装之后,团队里的其他人只要把你的 java-backend-kit 文件夹和 marketplace.json 复制过去,也能一键安装——不用手动建 Skills 文件夹、不用记每个 SKILL.md 怎么写。


实战七:Plugin 里打包 MCP 配置

Plugin 不只能打包 Skills,还能打包 MCP Server 配置。比如你想让团队里每个人都用上 Context7(查技术文档)和腾讯云 CLS(查线上日志),但不想让大家各自去配 config.toml。

在 Plugin 根目录创建 .mcp.json

{"servers": {"context7": {"command""npx","args": ["-y""@upstash/context7-mcp"]    },"cls": {"command""npx","args": ["-y""cls-mcp-server@latest"],"env": {"TENCENTCLOUD_SECRET_ID""","TENCENTCLOUD_SECRET_KEY""","CLS_REGION""ap-guangzhou"      }    }  }}

然后在 plugin.json 里加一行:

{"name""java-backend-kit","version""1.1.0","description""Java 后端开发工具包,现在包含 MCP 配置","skills""./skills/","mcpServers""./.mcp.json"}

安装这个 Plugin 之后,Context7 和腾讯云 CLS 的 MCP Server 就自动配好了。CLS 的 SecretId 和 SecretKey 需要用户自己填——安装时 Codex 会提示。如果你们团队用阿里云,把 CLS 换成阿里云可观测 MCP Server 就行,思路一样。


两种 Marketplace:团队共享 vs 个人使用

团队共享(Repo Marketplace):

把 Marketplace 文件放在项目仓库里,这样所有 clone 这个仓库的人都能看到:

你的项目/└── .agents/    └── plugins/        └── marketplace.json     # 团队共享的 Plugin 列表

路径是 $REPO_ROOT/.agents/plugins/marketplace.json。这个文件可以提交到 Git,团队成员拉代码就自动有了。

个人使用(Personal Marketplace):

放在用户目录下,只有你自己能看到:

C:\Users\你的用户名\└── .agents\    └── plugins\        └── marketplace.json     # 你自己的 Plugin 列表

路径是 ~/.agents/plugins/marketplace.json

一个 Marketplace 可以包含多个 Plugin。你不用每个 Plugin 建一个 Marketplace——一个 marketplace.json 文件的 plugins 数组里可以列多个 Plugin。


安装官方 Plugin

除了自己做 Plugin,Codex 还有一个官方的 Plugin 目录,里面已经有一批现成的官方插件可直接安装。

在 App 里,侧边栏找到”Plugins”(中文界面显示为”技能”)点进去就是 Plugin 目录。目前有 Gmail、Google Drive、Slack、Figma、Notion 等常用工具的集成。

CLI 也已支持 Plugins,官方当前明确写出的相关浏览命令是 /plugins,插件能力本身已在 CLI 中可用。

安装官方 Plugin 比手动配 MCP 方便得多——点一下安装,认证一下账号,就能用了。比如装了 Gmail Plugin 之后,你可以直接说”帮我总结今天未读的邮件”,Codex 会通过 Plugin 去读你的 Gmail。


Plugin 卸载和管理

卸载: 在 Plugin 目录里找到已安装的 Plugin,点”Uninstall”就行。卸载 Plugin 会移除它包含的 Skills 和 MCP 配置,但如果 Plugin 里包含了 App 集成(比如 Gmail 的授权),那个 App 连接不会被自动删除——需要你手动管理。

启用/禁用: 不想卸载但暂时不用?Codex 会在 config.toml 里记录每个 Plugin 的开关状态,你可以单独关掉某个 Plugin。


Automations + Plugins 的完整流程

把这两个功能串起来,一个完整的进阶流程是这样的:

第一步:写 Skill(上一篇的内容)。 先在项目里写几个实用的 Skill,比如代码审查、单元测试。

第二步:设 Automation(本篇)。 把高频的 Skill 设成定时自动运行,比如每天自动审查提交、自动修 bug。

第三步:打包 Plugin(本篇)。 等 Skills 和 MCP 配置都稳定了,打包成 Plugin,分享给团队。

第四步:团队统一安装。 新同事加入,一键安装 Plugin,Skills、MCP 配置和相关集成可以一起下发——不用从头配。

这就是从”一个人用好 Codex”到”整个团队用好 Codex”的路径。


我的使用边界

适合用 Automation 的场景: 每天/每周定期检查的任务(代码审查、安全扫描),信息摘要类任务(代码变更摘要、PR 汇总),持续改进类任务(自动优化 Skills),配合 Skill 做定期维护(自动修 bug、自动清理 TODO)。

不适合用 Automation 的场景: 需要实时交互的任务(需要你边看边改的场景),需要完全访问权限的高风险操作(数据库迁移、生产环境部署),App 不会一直开着的情况(Automation 需要 App 在运行中)。

适合做成 Plugin 的场景: 多个项目要复用同样的 Skills 和 MCP 配置,团队里多个人要用同样的设置,你的 Skills 已经稳定不再频繁修改。

不适合做成 Plugin 的场景: 还在迭代的 Skill(先用本地 Skill,稳定了再打包),只有你一个人用的个人配置(Skill 就够了,不用打包)。


完整文件结构一览

# 个人级C:\Users\你的用户名\├── .codex\│   ├── config.toml                    # 全局配置 + MCP 配置│   └── plugins\                        # 个人级 Plugin 存放│       └── java-backend-kit\│           ├── .codex-plugin\│           │   └── plugin.json│           ├── skills\│           │   ├── java-review\│           │   │   └── SKILL.md│           │   └── java-unit-test\│           │       └── SKILL.md│           └── .mcp.json└── .agents\    ├── skills\                         # 个人级 Skill(不需要打包的)    │   └── recent-code-bugfix\    │       └── SKILL.md    └── plugins\        └── marketplace.json            # 个人级 Marketplace# 项目级(团队共享)D:\Projects\your-project\├── .agents\│   ├── skills\                         # 项目级 Skill│   └── plugins\│       └── marketplace.json            # 团队 Marketplace├── .codex\│   └── config.toml                     # 项目级配置└── AGENTS.md                           # 项目全局规则

写在最后

Automations 和 Plugins,本质上解决的是两个不同维度的效率问题。

Automations 解决的是时间维度的效率——不用你手动触发,Codex 自己按时干活。Plugins 解决的是协作维度的效率——不用你手动教每个人怎么配,一键安装就能用。

我建议的上手路径:先手动跑一个你每天都会做的任务(比如代码审查),确认 Prompt 效果没问题。然后把这个 Prompt 设成每天自动跑的 Automation,5 分钟搞定。等你的 Skills 积累到 3-5 个、都跑稳了,打包成一个 Plugin。最后分享给团队,让所有人都用上你调教好的 Codex。

说实话,Plugins 目前还在早期阶段——官方的 Plugin 目录还没有开放自助发布,自定义 Plugin 只能通过本地 Marketplace 分发。但这个方向是对的:从个人技能到团队标准化,从手动操作到自动执行,这就是 AI Agent 融入团队工作流的完整路径。

到这里,Codex App Windows 版高级教程系列就全部写完了。从 AGENTS.md、config.toml、Worktrees,到 Subagents、Skills + MCP、Automations + Plugins——7 大功能全覆盖。

觉得有用的话,点个赞或者收藏一下,后面有新功能更新我会继续写。