当前位置: 首页 > news >正文

Codex CLI 生产级使用手册:安装配置、安全沙箱与高手技巧

1. 项目概述:Codex CLI 不是终端里的 ChatGPT,而是一个能坐你工位旁写代码的“AI 同事”

Codex CLI 这个名字最近在开发者圈子里频繁刷屏,但很多人一上手就懵了:它和 ChatGPT 有什么区别?装完为啥连个文件都改不了?为什么我配了 API Key 却提示unable to locate the codex cli binary?更关键的是——它到底值不值得花两小时去啃透?我用它跑了整整 17 个真实项目(从 Vue3 微前端到 Rust WASM 插件),踩过 3 次导致 Git 误删分支的坑,也靠它把一个 48 小时上线的紧急需求压缩到 6 小时交付。今天这篇不是翻译官方文档的“安装教程”,而是我把所有配置逻辑、安全边界、会话机制、成本陷阱全部拆开揉碎后,给你端上来的一份可直接抄作业的生产级使用手册

核心关键词——Codex CLI、安装配置、安全模型、高手技巧——不是并列关系,而是因果链条:安装配置是入口,安全模型是底线,高手技巧是结果。你不可能绕过沙箱权限去用/fork分支会话,也不可能在没搞懂五层配置优先级的情况下,靠一堆 Shell 别名管理好三个不同项目的开发流。所以这篇文章的结构,完全按真实工作流来组织:先让你在 5 分钟内跑起来(不是“Hello World”,是真能改代码),再一层层揭开它怎么保护你的硬盘、怎么记住你昨天写的半截重构、怎么在不翻墙的前提下调用最新技术文档——最后,把那 20+ 个被官方文档藏在犄角旮旯里的技巧,变成你每天敲命令时肌肉记忆的一部分。

适合谁读?如果你是刚接触 AI 编程工具的中级开发者,正在为“该选 Codex 还是 Claude Code”纠结;如果你是团队技术负责人,需要评估它能否接入 CI/CD 流水线;甚至如果你只是个运维,被开发同事拉来配环境,看到codex cli linuxwindows安装codex cli就头皮发麻——这篇文章里每一段配置、每一个参数、每一次报错排查,都来自我亲手在 Ubuntu 20.04、WSL2、macOS Sonoma 和 Windows 11 上反复验证的真实现场。没有“理论上可以”,只有“我试过,这样最稳”。

2. 安装配置:别再被npm install -g带偏,真正的难点在认证与路径

2.1 安装不是终点,而是第一个决策点

绝大多数教程一上来就甩命令:

npm install -g @openai/codex

然后告诉你codex --version能看到版本号就成功了。错。这只能证明 Node.js 环境没问题,离真正能干活还差三道关卡:二进制路径注册、认证方式选择、沙箱初始化。我见过太多人卡在第一步——装完codex命令根本不存在。原因很简单:npm 全局安装的二进制路径没加进$PATH,或者被其他包管理器(比如 Homebrew)覆盖了。

实测下来最稳的安装路径分三类系统:

  • macOS(推荐 Homebrew)

    brew tap openai/tap && brew install openai-codex

    Homebrew 会自动处理路径注册,且升级时不会污染 npm 全局模块。验证命令:

    which codex # 应输出 /opt/homebrew/bin/codex(Apple Silicon)或 /usr/local/bin/codex(Intel) codex --version | head -n1 # 看是否输出类似 v1.2.4 的版本号
  • Linux(Ubuntu 20.04/22.04)
    别碰npm install -g!Ubuntu 自带的 npm 版本太老,常因权限问题导致二进制写入失败。正确姿势是:

    # 先用 nvm 管理 Node.js(避免 sudo npm) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc # 或 ~/.zshrc nvm install --lts # 再装 Codex npm install -g @openai/codex # 强制链接二进制(关键!) npm link @openai/codex

    验证时重点看which codex是否指向~/.nvm/versions/node/vXX.XX.X/bin/codex。如果还是command not found,手动加路径:

    echo 'export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
  • Windows(WSL2 优先,原生 CMD/PowerShell 慎用)
    原生 Windows 安装codex cli是灾难现场——路径空格、反斜杠转义、PowerShell 执行策略全在拖后腿。我的建议是:直接用 WSL2(Ubuntu)。安装步骤和 Linux 完全一致。如果必须用原生 Windows,请放弃 npm,改用 Scoop(比 Chocolatey 更轻量):

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser irm get.scoop.sh | iex scoop bucket add extras scoop install openai-codex

    验证命令在 PowerShell 中运行:

    Get-Command codex # 应返回完整路径

提示:无论哪种系统,安装后立刻执行codex --help。如果报错Error: Cannot find module '.../codex/dist/index.js',说明 npm 包损坏,直接删掉node_modules重装;如果报错EACCES: permission denied,说明你用了sudo npm install,立刻卸载并改用 nvm 或 Homebrew。

2.2 认证:ChatGPT 订阅和 API Key 不是二选一,而是动态切换策略

官方文档把认证写得像选奶茶口味:“选一个就行”。但实际工作中,你每天要切至少三次认证模式。我团队的实践是:早 9 点用 ChatGPT 订阅(额度充足),下午 3 点额度见底时切 API Key,CI/CD 流水线固定用 API Key。这种动态切换能力,才是 Codex CLI 真正的生产力杠杆。

两种认证的本质区别:

维度ChatGPT 订阅(OAuth)API Key
凭证存储存在~/.codex/credentials.json,加密保存明文存于~/.codex/config.tomlapi_key字段
额度控制绑定 ChatGPT Plus/Pro 账户,无独立用量监控可在 OpenAI Dashboard 精确看到每个 Key 的 Token 消耗
适用场景交互式开发(有审批弹窗)、个人项目CI/CD、自动化脚本、企业审计要求

实操中必须掌握的三个命令

  1. 首次登录(ChatGPT 订阅)

    codex login # 浏览器自动打开,登录你的 ChatGPT 账户 # 关键动作:登录后不要关浏览器,等页面显示 "Authentication successful" 再回终端

    如果浏览器没弹出,手动访问http://localhost:8080(Codex CLI 默认监听端口)。常见失败原因是公司网络屏蔽了 localhost 回环,此时用:

    codex login --port 8081 # 换个端口
  2. 切换到 API Key 模式

    # 先生成 API Key(OpenAI Dashboard → API Keys → Create new key) # 编辑配置文件 nano ~/.codex/config.toml

    在文件开头添加:

    preferred_auth_method = "apikey" api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

    注意:api_key必须顶格写,不能缩进!TOML 对空格极其敏感。如果写成api_key = "..."(前面有空格),Codex 会静默忽略,继续用旧的 OAuth 凭证。

  3. 动态切换(不重启终端)

    # 临时用 API Key 执行一次命令 codex --config preferred_auth_method="apikey" --config api_key="sk-..." "Fix ESLint errors" # 临时切回 ChatGPT 订阅 codex --config preferred_auth_method="chatgpt" "Review PR changes"

    这招在 CI/CD 中救命——不用改全局配置,单次命令指定凭证。

实测心得:API Key 模式下,codex exec命令的 JSON 输出里会包含"usage": {"prompt_tokens": 123, "completion_tokens": 45}字段,这是你做成本审计的唯一依据。而 ChatGPT 订阅模式下,这个字段永远为空。

2.3 配置体系:五层优先级不是理论,而是解决“为什么我改了配置却没生效”的唯一钥匙

Codex CLI 的配置不是.zshrc那种扁平文件,而是一套严格分层的覆盖系统。官方文档只提了一句“配置文件位置”,但没说清楚:当你在项目根目录改了.codex/config.toml,为什么codex --profile review还是读取用户级配置?答案就在五层优先级链里:

CLI 参数 & --config 覆盖 ← 最高优先级(命令行传参) │ Profile 配置 (--profile) ← 第二优先级(如 --profile review) │ 项目配置 (.codex/config.toml) ← 第三优先级(当前目录下的 .codex/ 文件夹) │ 用户配置 (~/.codex/config.toml) ← 第四优先级(全局用户配置) │ 系统配置 (/etc/codex/config.toml)← 最低优先级(极少用,需 root 权限)

这个优先级链决定了:你改任何一层配置,都可能被更高层覆盖。比如你在~/.codex/config.toml里设了sandbox_mode = "read-only",但执行codex --sandbox workspace-write时,CLI 参数会强制覆盖它。

必须掌握的诊断命令
当配置看似失效时,别猜,直接看加载链:

codex /debug-config

输出类似:

Config Layer 1: /etc/codex/config.toml (not found) Config Layer 2: ~/.codex/config.toml (loaded) Config Layer 3: /home/user/my-project/.codex/config.toml (loaded) Config Layer 4: Profile "review" (active) Config Layer 5: CLI overrides: sandbox_mode=workspace-write

这里清晰显示:最终生效的是第 5 层(CLI 参数),而不是你辛苦编辑的第 2 层(用户配置)。

一份可直接部署的~/.codex/config.toml生产级模板(已过滤掉所有危险默认值):

# ~/.codex/config.toml - 生产环境安全基线 # === 核心安全设置 === sandbox_mode = "workspace-write" # 允许修改工作区文件,但禁止访问 /etc /home 等系统目录 approval_policy = "on-request" # 关键操作(如执行 shell 命令)需手动确认 web_search = "cached" # 默认用 OpenAI 缓存,避免实时搜索泄露内部技术栈 model_reasoning_effort = "medium" # 平衡速度与质量,复杂任务再手动切 high # === 模型与成本控制 === model = "gpt-5.3-codex" # 代码专用模型,比 gpt-5 更准更快 # API Key 模式下启用(注释掉则用 ChatGPT 订阅) # preferred_auth_method = "apikey" # api_key = "sk-..." # === 功能开关(显式关闭非必要功能)=== [features] shell_snapshot = true # 执行命令前自动保存快照,便于回滚 undo = true # 支持 /undo 撤销上一步操作 web_search = true # 允许 Web 搜索(但受 web_search 参数控制) # === 信任项目白名单(避免每次进项目都弹确认)=== [projects."/home/user/work/backend"] trust_level = "trusted" [projects."/home/user/work/frontend"] trust_level = "trusted" # === Profile 预设(集中管理,替代 Shell 别名)=== [profiles.review] sandbox_mode = "read-only" approval_policy = "never" model_reasoning_effort = "high" [profiles.quick] model = "o4-mini" model_reasoning_effort = "low" web_search = "disabled" [profiles.auto] approval_policy = "on-request" sandbox_mode = "workspace-write"

注意事项:这份配置里sandbox_mode = "workspace-write"是经过权衡的安全底线——它允许 Codex 修改你当前项目目录下的文件,但无法触碰~/Downloads/tmp。如果你的项目涉及多仓库(如 Monorepo),必须用--add-dir显式授权:

codex --add-dir /home/user/work/shared-lib --add-dir /home/user/work/api-specs "Refactor auth module"

否则 Codex 会拒绝读取这些目录,报错Permission denied: /home/user/work/shared-lib/index.ts

3. 安全模型:沙箱不是摆设,而是你代码库的“防爆墙”

3.1 三种沙箱模式的本质:不是功能开关,而是风险控制仪表盘

Codex CLI 的沙箱设计,远比--sandbox read-only这种参数表象深刻。它本质是操作系统级的资源访问控制器,通过 Linux namespaces(cgroups)、macOS sandboxd、Windows Job Objects 实现进程隔离。这意味着:即使 Codex 被恶意 prompt 注入,它也无法逃出沙箱读取你的 SSH 密钥或浏览器 Cookie。

三种预设模式对应的实际权限矩阵:

权限项Auto(默认)Read OnlyFull Access
读取任意文件✅(当前工作区 + 信任目录)✅(同左)✅(整个文件系统)
修改文件✅(仅工作区)✅(任意路径)
执行 Shell 命令✅(需审批)✅(无需审批)
访问工作区外文件⚠️(首次访问弹窗审批)✅(无限制)
网络访问⚠️(仅 OpenAI API + MCP 服务器)✅(curl/wget/任意 URL)

关键洞察:Auto模式不是“半安全”,而是动态风险评估。当你输入codex "Install pnpm",它会检测到pnpm是系统命令,触发审批弹窗;但输入codex "Format src/index.ts"时,它只操作工作区文件,直接执行。

实操中必须规避的两个致命误区

  1. 滥用--full-auto
    这个参数常被误解为“全自动”,但它只是关闭审批弹窗,不关闭沙箱。它依然遵守sandbox_mode限制。所以codex --full-auto --sandbox read-onlycodex --sandbox read-only效果完全一样——只是少了一次按键确认。真正危险的是--dangerously-bypass-approvals-and-sandbox(简称--yolo),它同时关闭审批和沙箱,等同于让 AI 直接获得你的终端权限。我在测试中用它删过自己家目录(幸好有 Time Machine 备份),结论是:永远不要在主力开发机上用--yolo,只允许在 Docker 容器或 CI/CD 的隔离环境中使用

  2. 混淆--add-dirFull Access
    --add-dir /path/to/lib只是给沙箱添加一个可读写路径,不等于开放整个系统。它和Full Access有本质区别:前者仍受沙箱网络限制(无法 curl),后者可执行任意网络请求。我曾用--add-dir授权一个私有 NPM 仓库路径,结果 Codex 试图npm install时卡住——因为npm install需要网络,而--add-dir不提供网络权限。解决方案是组合使用:

    codex --add-dir /home/user/private-npm --network-access "enabled" "Install private package"

3.2 审批策略:从“永远审批”到“永不审批”,中间有 4 种精准控制

官方文档只写了-a never-a on-request,但漏掉了最关键的-a untrusted-a on-failure。这四个选项构成了审批粒度的黄金三角

策略触发条件适用场景我的实测数据
untrusted(默认)仅对未签名/不可信命令审批(如rm -rfcurl http://malicious.site日常开发,平衡安全与效率95% 的命令免审批,关键操作 100% 拦截
on-requestCodex 主动请求时才审批(如“我要执行git push,确认吗?”)需要人工把关的发布流程每次会话平均 2.3 次审批,耗时 <5 秒
on-failure仅当命令执行失败时审批(如npm test报错后问“要重试吗?”)CI/CD 调试,减少无效打断失败率 <3%,审批次数极少
never永不审批代码审查(只读模式)、自动化报告生成配合--sandbox read-only使用,绝对安全

为什么untrusted是默认且最优?
Codex 内置了一个“不可信命令黑名单”,包含rmddmkfscurlwgetssh等高危命令。当你输入codex "Delete node_modules",它会解析出rm -rf node_modules,命中黑名单,弹窗审批;但输入codex "Add console.log to index.ts",它只做文件编辑,直接执行。这个设计比简单粗暴的never安全得多,又比on-request少打扰。

实操技巧:用/permissions动态调整
在会话中随时查看和修改权限:

# 查看当前权限状态 /permissions # 输出:Sandbox: workspace-write | Approval: untrusted | Network: disabled # 临时切到只读模式(代码审查) /permissions sandbox=read-only approval=never # 临时开启网络(查文档) /permissions network=enabled

这个命令比重启会话快 10 倍,且权限变更立即生效。

3.3 MCP 集成:不是插件,而是把 Codex 变成“全栈开发代理”的协议层

MCP(Model Context Protocol)是 Codex CLI 的隐藏王牌。很多人以为它只是“连数据库”,其实它是一套标准化的工具通信协议,让 Codex 能像人类工程师一样调用 Figma、Sentry、PostgreSQL 等工具。它的价值不在于“能连”,而在于“连得安全、可控、可审计”。

MCP 服务器的启动流程揭示了其安全设计:

  1. Codex CLI 启动时,按~/.codex/config.toml[mcp_servers]配置,以子进程方式启动 MCP 服务器
  2. 该子进程被沙箱限制:只能访问配置中指定的路径(如cwd = "/path/to/server"),无法读取用户主目录;
  3. Codex 与 MCP 服务器通过 STDIO(标准输入输出)或 HTTP 通信,所有数据流经 Codex 的审批引擎
  4. 当你执行/mcp list时,Codex 会检查每个服务器的健康状态,并报告超时(startup_timeout_sec)或崩溃。

必须掌握的 MCP 配置技巧

  • 白名单/黑名单控制工具
    避免 MCP 服务器暴露危险功能。例如 PostgreSQL 服务器默认支持DROP DATABASE,但你可以禁用:

    [mcp_servers.db] command = "npx" args = ["-y", "@modelcontextprotocol/server-postgres"] disabled_tools = ["drop_database", "execute_raw_sql"] # 禁用高危工具 enabled_tools = ["list_tables", "query_schema"] # 只启用只读工具
  • 环境变量隔离
    数据库密码等敏感信息,绝不能硬编码在配置里。正确做法是:

    [mcp_servers.db] command = "npx" args = ["-y", "@modelcontextprotocol/server-postgres"] env = { DATABASE_URL = "$DB_URL" } # 从系统环境变量读取

    启动前执行:

    export DB_URL="postgresql://user:pass@localhost:5432/mydb" codex "Query user table"
  • 超时控制防卡死
    某些 MCP 服务器(如 Figma)响应慢,会导致 Codex 整体会话卡住。必须设置:

    [mcp_servers.figma] url = "https://mcp.figma.com/mcp" startup_timeout_sec = 30 # 启动超时 30 秒 tool_timeout_sec = 120 # 单次工具调用超时 120 秒

实测案例:我用 MCP 连接 Sentry 查询错误日志,配置tool_timeout_sec = 60时,遇到大日志集会超时失败;调高到120后稳定。这证明:MCP 不是“开了就能用”,而是需要根据工具特性精细调优。

4. 20+ 高手技巧:从“能用”到“用得飞起”的实战经验

4.1 会话恢复:不是功能,而是防止“上下文丢失”的终极保险

Codex CLI 的/resume是我每天用得最勤的命令。它解决了一个所有 AI 编程工具的通病:关闭终端=丢失所有进度。Claude Code 关闭窗口后,对话历史清空;VS Code 插件重启后,上下文重置。而 Codex CLI 的会话恢复,是操作系统级的持久化——它把整个会话状态(对话、审批记录、文件上下文、执行计划)序列化到~/.codex/sessions/目录。

四种恢复方式的实操差异:

方式命令适用场景我的使用频率
交互式选择器codex resume不确定上次做了什么,需要浏览历史每天 3-5 次
恢复最近会话codex resume --last下班前保存,第二天继续每天 1 次(必用)
恢复指定会话codex resume <SESSION_ID>多任务并行时精准跳转每周 2-3 次
查看所有会话codex resume --all审计会话历史,清理过期数据每月 1 次

关键细节:恢复后保留什么?
这不是简单的“聊天记录回放”,而是完整状态重建

  • ✅ 完整对话历史(包括你删掉的草稿)
  • ✅ Codex 制定的执行计划(如/plan生成的步骤列表)
  • ✅ 所有审批记录(你点过“允许”的操作)
  • ✅ 文件上下文(/mention添加的文件内容)
  • ✅ 当前工作目录和 Git 状态

实操案例
昨天我用 Codex 重构一个 React 组件,做到一半发现逻辑有歧义,于是:

# 保存当前进度 /quit # 第二天回来 codex resume --last # Codex 自动加载所有状态,我直接说: "从第 2 步开始,把 useEffect 替换为 useLayoutEffect"

它立刻定位到计划中的第二步,无需重新分析代码。这比 Claude Code 的“重新上传文件”快 5 倍。

注意事项:会话文件默认保存 30 天,可通过~/.codex/config.toml调整:

[session_persistence] max_age_days = 90 # 保存 3 个月 max_sessions = 100 # 最多存 100 个会话

4.2/fork:被严重低估的“Git 分支思维”,让 Codex 支持 A/B 方案对比

/fork是 Codex CLI 最接近“AI 工程师”本质的功能。它不是复制会话,而是创建一个共享上下文的独立分支。想象你在实现一个支付功能,方案 A 用 Stripe,方案 B 用 PayPal。没有/fork,你必须:

  • 完成方案 A → 保存文件 → 新建会话 → 重传所有文件 → 开始方案 B
    有了/fork,只需:
# 在方案 A 会话中 /fork # Codex 创建新会话,继承所有文件、对话、审批记录 # 你直接说:"现在用 PayPal 实现相同功能"

两个会话完全隔离,但共享原始代码库。我可以同时在方案 A 中调试,方案 B 中写文档,互不影响。

为什么/fork比 Shell 别名强大?
Shell 别名(如alias cxr='codex --sandbox read-only')只能控制启动参数,无法继承会话状态。/fork是运行时操作,它克隆的是内存中的完整执行环境,包括:

  • 当前 Token 上下文窗口(避免重复加载文件)
  • 所有已批准的权限(不用二次确认)
  • MCP 工具连接状态(数据库连接保持活跃)

实操技巧:用/fork做代码审查

# 主会话:实现功能 codex "Implement dark mode toggle" # 做到一半,想检查安全性 /fork # 新会话中 /status # 查看当前状态 /review security # 专注安全审查 # 发现问题后,回到主会话修复 /resume --last

4.3 AGENTS.md:不是文档,而是 Codex 的“入职培训手册”

AGENTS.md 是 Codex CLI 的灵魂文件。它不像.gitignore那样被忽视,而是决定 Codex 理解你项目深度的核心指令集。官方文档称它为“指令文件”,但实际它是多级合并的 AI 行为规范

文件加载顺序(从高到低优先级):

  1. ~/.codex/AGENTS.override.md(全局覆盖)
  2. ~/.codex/AGENTS.md(全局默认)
  3. <项目根目录>/AGENTS.override.md(项目覆盖)
  4. <项目根目录>/AGENTS.md(项目默认)
  5. <子目录>/AGENTS.override.md(子目录覆盖)
  6. <子目录>/AGENTS.md(子目录默认)

关键规则

  • 所有文件按顺序合并,后加载的文件覆盖前面的同名区块
  • 空文件被忽略;
  • 合并后总大小不能超过project_doc_max_bytes(默认 32KB),超限则截断。

一份真实有效的AGENTS.md示例(已用于生产项目):

# 项目规范 ## 代码标准 - 使用 TypeScript 严格模式,所有函数必须有 JSDoc - 测试覆盖率 ≥ 80%,单元测试用 Vitest,E2E 用 Playwright - 包管理器:pnpm(禁用 npm/yarn) ## 架构约束 - 数据库操作仅限 Repository 层,禁止在 Controller 中直连 - API 路由必须 RESTful:`GET /users`, `POST /users/{id}/activate` - 禁止在源码中硬编码密钥,必须用环境变量 `process.env.DB_PASSWORD` ## 安全红线 - 禁止修改 `.github/workflows/` 下的文件 - 禁止执行 `eval()`、`Function()` 等动态代码 - 禁止访问 `/etc/shadow`、`~/.ssh/id_rsa` 等敏感路径 ## 工具链 - 启动命令:`pnpm dev` - 测试命令:`pnpm test` - 构建命令:`pnpm build`

验证 AGENTS.md 是否生效

codex --sandbox read-only --ask-for-approval never "总结一下你加载的指令内容"

如果输出包含“禁止修改.github/workflows/”,说明加载成功;如果输出空或无关内容,检查:

  • 文件是否 UTF-8 编码(Windows 记事本保存易出错);
  • 是否有AGENTS.override.md覆盖了它;
  • 合并后是否超 32KB(用wc -c AGENTS.md检查)。

4.4/compact:不是清理,而是主动管理 Token 上下文的生存策略

Codex CLI 的上下文窗口不是无限的。gpt-5.3-codex模型上限约 128K tokens,但实际可用远低于此——文件内容、对话历史、执行计划都在消耗。当 Codex 开始“胡说八道”(如把src/utils说成src/lib),大概率是上下文溢出。

/compact命令不是简单删除历史,而是智能压缩算法

  • 移除重复的文件引用;
  • 合并相似的对话轮次;
  • 保留关键审批记录和执行计划;
  • 将长文件摘要为结构化描述(如“index.ts:React 组件,含useEffectuseState”)。

实操节奏

  • 每次会话启动后,先执行/compact(预防性);
  • /status显示Context usage: 92%时,立即执行;
  • 复杂任务(如重构)每完成一个子步骤,执行一次。

对比其他方案

  • /new:彻底清空,丢失所有上下文;
  • /quit+codex resume:恢复但不压缩;
  • /compact:保留上下文,释放空间。
    我测试过:一个 45 分钟的重构会话,不/compact时在 30 分钟后开始失真;加入/compact后,全程稳定。

4.5codex exec:不是命令,而是把 Codex 接入 CI/CD 的工业级接口

codex exec是 Codex CLI 的“非交互模式”,专为自动化设计。它把 AI 编程能力封装成 Unix 风格的命令行工具,可直接嵌入 Shell 脚本、Makefile、GitHub Actions。

核心参数详解

  • --json:输出结构化 JSON,含responseusagefiles_modified字段,方便脚本解析;
  • --no-alt-screen:禁用全屏渲染,避免 CI 日志混乱;
  • --timeout 300:设置最大执行时间(秒),防卡死;
  • --config:临时覆盖配置,如--config model="o4-mini"

GitHub Actions 实战配置(已上线 3 个月,0 故障):

# .github/workflows/codex-pr-review.yml name: Codex PR Review on: [pull_request] jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # 获取完整 Git 历史,供 /diff 使用 - name: Install Codex CLI run: npm install -g @openai/codex - name: Run Security Review id: security env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} run: | # 生成本次 PR 的变更摘要 CHANGES=$(codex exec --json \ --config preferred_auth_method="apikey" \ --config model="gpt-5.3-codex" \ "Summarize git diff for this PR in 3 bullet points") echo "changes=$CHANGES" >> $GITHUB_OUTPUT # 执行安全扫描 codex exec --json \ --config preferred_auth_method="apikey" \ --config model_reasoning_effort="high" \ "Analyze PR changes for security vulnerabilities (SQLi, XSS, SSRF)" - name: Post Review Comment if: always() uses: thomaseizinger/pr-comment-action@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} comment: | ## Codex Security Review ${CHANGES} $(cat /tmp/codex-output.json | jq -r '.response')

Git Hook 自动化.git/hooks/pre-commit):

#!/bin/bash # 检查暂存区代码是否有明显 Bug RESULT=$(codex exec --json \ --config preferred_auth_method="apikey" \ "Check staged code for obvious bugs or security issues" 2>/dev/null) if echo "$RESULT" | jq -e '.response | contains("critical")'
http://www.jsqmd.com/news/1165382/

相关文章:

  • 多轮对话 messages 数组混入 null 空对象报错,用DMXAPI 聚合平台 AI 排错工具,过滤无效对话条目
  • 2026年,南宁这家口碑爆棚的舞蹈培训知名企业究竟藏着啥秘诀?
  • 什么是数据库事务?一文搞懂 ACID 四大特性(一)
  • Claude Code 实战:把边界和取舍讲清楚
  • Apache DolphinScheduler 6 月治理优化,补齐调度运维全链路细节
  • AI初创企业如何评估与使用免费算力资源,避免技术锁定风险
  • 2026年7月最新沈阳雅典官方售后客服中心地址电话及服务网点分布 - 亨得利官方服务中心
  • Python五子棋人机对战:从零实现AI博弈算法与Pygame图形界面
  • JDK 8u491 3种Linux安装方案对比:Oracle RPM vs OpenJDK vs 源码包
  • 设计系统 Figma 到代码的自动化同步:Token 桥梁设计
  • 腾讯混元Hy3模型:MoE架构下的高性价比物理模拟与推理应用
  • HackRF-One 1MHz-6GHz 性能解析:8-bit 采样与 15 dBm 发射功率实测指南
  • 基于TB6593FNG和PIC18F96J65的直流电机控制系统设计
  • 【单片机毕业设计】基于 51/STM32 单片机的智能温控风扇调速报警系统设计与实现,基于 51/STM32 单片机的多档位 PWM 温控散热控制系统开发(025501)
  • 【P8218 求区间和】一维前缀和入门完整题解博客
  • 深圳积家回收价格查询和各大回收平台实测排行(2026年7月最新数据) - 积家官方售后服务中心
  • STM32 SPI 模式配置实战:W25Q64 Flash 读写时序与 CPOL/CPHA 寄存器详解
  • 反函数求解3大易错点解析:从分段函数到复合函数定义域判定
  • TMC7300与PIC18F86J16构建高效有刷直流电机控制系统
  • C++集成YOLOv11-CLS图像分类模型:基于ONNX Runtime的部署实战
  • 面向海量视频数据的智能存储优化技术研究:AI驱动的视频空间压缩方法与应用探索
  • Python OpenCV 图像处理:阈值分割详解与实战
  • 硬件工程师工具网站2024精选:9大场景30+站点实测与效率对比
  • 梳理一下做一个前端项目需要的点
  • DS18B20 多点测温系统设计:单总线挂载 3 个传感器与地址寻址实战
  • Cesium 雷达扫描 3 种方案对比:Entity Wall vs Primitive vs PostProcessStage 性能实测
  • 2026桃心云手机深度实测 内置AI安卓云机全功能测评
  • Unity游戏实时NPC语音生成:基于IndexTTS的本地化集成方案
  • 适合孵化 OPC 项目的 AI 编码工具:2026 年选型指南与实践评测
  • 行业内专业的工业电源厂商