第 16 卷
# CLI里管理插件 codex plugin list codex plugin add <名字> codex plugin remove <名字> codex plugin marketplace --.
# 会话里浏览 /plugins
桌面App里插件管理在Settings里。Business套餐5月起能在团队里分享插件。DevDay(9月29日)还发布了 Plugin Extensions,插件可以带侧边栏、面板、表单这样的界面。
MCP:连接外部工具
MCP(Model Context Protocol)是让Codex和外部工具对话的标准协议。CLI、IDE扩展、桌面App共用一份 MCP配置。
两种服务器:STDIO是本地进程,用一个命令启动;Streamable HTTP是远程服务,用URL访问,支持Bearer
token和OAuth( codex mcp login 名字)。
# 添加 codex mcp add context7 -- npx -y @upstash/context7-mcp codex mcp add linear --url https:-/mcp.linear.app/mcp
# 会话里看已连接的工具 /mcp
也可以直接写 config.toml(项目级的 .codex/config.toml 只在受信任的项目里生效):
[mcp_servers.context7] command = "npx"
args = ["-y", "@upstash/context7-mcp"]
[mcp_servers.figma] url = "https:-/mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
| 选项 | 说明 |
|---|---|
| startup_timeout_sec | 启动超时,默认10秒 |
| tool_timeout_sec | 单次调用超时,默认60秒 |
| enabled | 设false停用但不删 |
| required | 设true时启动失败会挡住Codex |
| enabled_tools/disabled_tools | 工具白名单/黑名单 |
常用的几个:OpenAI Docs MCP、Context7(最新的库文档)、Figma MCP(读设计稿)、Playwright MCP和
Chrome DevTools MCP(控制浏览器)、Sentry MCP(线上错误)、GitHub MCP。
5月版书里还有一节「Codex自身作为MCP Server」,那个 codex mcp-server 命令8月24日标为废弃、9月5日删掉了,官方的替代是app-server。
hooks:在固定时刻插一段你的代码
hooks在5月14日正式可用,现在是默认开启的。它让你在Codex干活的某个时刻,自动跑一段你写的脚本:检查、拦截、补充上下文、记日志。
什么时候事件
一轮对话里PreToolUse、 PermissionRequest、 PostToolUse、 PreCompact、 PostCompact、
UserPromptSubmit、 SubagentStop、 Stop
你打断当前这Interrupt 一轮时
会话或子agentSessionStart、 SubagentStart 开始时
主线程结束时SessionEnd
写在 ~/.codex/hooks.json、 ~/.codex/config.toml,或项目
的 .codex/hooks.json、 .codex/config.toml 里。一个在每次跑shell命令前做检查的例子:
[[hooks.PreToolUse]] matcher = "^Bash$"
[[hooks.PreToolUse.hooks]] type = "command"
command = '/usr/bin/python3 "$(git rev-parse --show-toplevel)/.codex/hooks/pre_tool_use_polic timeout = 30 statusMessage = "Checking Bash command"
脚本想拦下这次调用,可以返回带 "permissionDecision": "deny" 和理由的JSON,或者以退出码2结束、把理由写到stderr。
安全上有两条要知道:
新的或改过的hook要你审核信任后才会跑。Codex按hook定义的哈希记录信任,内容一变就重新标为待
审。会话里用 /hooks 查看、信任或停用。
项目里的hooks只在你信任了这个项目之后才加载。这就是§02那个信任文件夹的弹窗里说「文件夹里的设置可能不经模型就执行代码」的原因。 --dangerously-bypass-hook-trust 可以跳过审核,只给已经自己
审过hook来源的自动化用。
官方给的典型用途包括:扫描提示词,防止不小心把API密钥贴进去;会话开始时自动注入项目上下文;跑shell 命令前按团队规则检查。
定时任务(Scheduled tasks)
5月版书里叫Automations,现在官方叫Scheduled tasks,结果出现在ChatGPT桌面App侧边栏的Scheduled 里,那里相当于一个收件箱,有发现的运行会带未读标记。
有三种跑法:
| 在哪建 | 能做什么 | 前提 |
|---|---|---|
| 桌面App里的 | 在本地项目目录或一个新worktree里跑,能 | 电脑开着、App开着、项目还在磁盘上 |
| Codex | 改你的代码 | |
| ChatGPT网页或手 | 用上传的文件、已连接的工具、skills和插件 | 碰不到你电脑上的文件夹 |
机
| 网页或手机上的事 | Gmail新邮件、Slack频道新消息、GitHub | 符合条件的套餐;桌面App、CLI、IDE里没 |
|---|---|---|
| 件触发 | PR动态触发一次运行 | 有;不能和定时同时设 |
CLI和IDE扩展里没有管理定时任务的界面,官方的建议是:先在CLI里把prompt、skill或脚本调试好,再去App 或网页里建任务。