一、Codex CLI适合处理什么任务?

普通对话更适合解释概念、讨论方案和生成较短的代码片段;Codex CLI更偏向项目执行。登录并获得相应权限后,它可以围绕本地仓库检查文件、提出修改、运行测试,并把过程交给开发者审核。

  • 阅读陌生项目的目录、入口、依赖和测试方式;
  • 根据明确需求修改多个相关文件;
  • 复现Bug并分析失败测试;
  • 运行格式检查、静态检查和单元测试;
  • 通过Git差异核对修改范围;
  • 使用codex exec处理可重复的开发任务。

涉及生产数据库、支付、权限配置和敏感代码时,不应直接放开全部权限,也不能省略人工Review。

二、安装Codex CLI

本文以npm安装为例:

npm install -g @openai/codex
codex --version
codex login status

       

图1  隔离演示环境中的安装、版本和登录状态检查。截图时CLI版本为0.144.5,状态为未登录。

首次使用可运行:

codex

再按照界面提示选择ChatGPT登录或其他可用的认证方式。不要把API Key写进截图、脚本或公开仓库。

三、先用只读权限了解项目

codex -C ./my-project --sandbox read-only

任务描述可以写得具体一些:

先阅读README、依赖配置、src和tests,不要修改任何文件。

请输出:
1. 项目用途与目录结构;
2. 主要入口和核心调用关系;
3. 启动命令与测试命令;
4. 当前信息还缺少什么;
5. 后续修改可能涉及的风险。

这样的提示明确了读取范围、禁止写入,并规定了输出结构,比“帮我看看项目”更容易检查。

四、本地复现一个最小Bug

示例函数把百分比数值直接参与了计算:

def final_price(price: float, discount_percent: float) -> float:
    if price < 0:
        raise ValueError("price must be non-negative")
    if not 0 <= discount_percent <= 100:
        raise ValueError("discount_percent must be between 0 and 100")
    return round(price * (1 - discount_percent), 2)

测试用例期望100元打八折后得到80元:

def test_twenty_percent_discount() -> None:
    assert final_price(100.0, 20.0) == 80.0

pytest -q

           

图2  示例项目的本地pytest失败结果。函数返回-1900.0,说明百分比换算存在错误。

这一步的目的,是先得到稳定、可重复的失败结果。没有复现问题就直接修改代码,后续很难判断修复是否有效。

五、登录后可以采用的安全修改流程

codex -C ./codex-cli-demo   --sandbox workspace-write   --ask-for-approval on-request

任务描述示例:

运行pytest -q复现当前失败测试。
先解释根因,不要立即大范围重构。
只修改与根因直接相关的文件。
修复后重新运行pytest -q,并执行git diff。
最后按“根因、修改、验证、剩余风险”四部分总结。
不要修改无关格式,不要删除现有边界检查。

需要接入脚本时,也可以使用非交互方式:

codex exec -C ./codex-cli-demo   --sandbox workspace-write   --ask-for-approval on-request   "复现失败测试,定位根因,完成最小修改,重新测试并总结git diff。"

这里的重点不是让工具自由修改,而是控制目录、写入范围和审批条件,并要求它先复现、后修改、再验证。

六、人工最小修改与回归验证

本例的根因是折扣百分比没有除以100。人工完成的最小修改为:

- return round(price * (1 - discount_percent), 2)
+ return round(price * (1 - discount_percent / 100), 2)

            

图3  人工完成一行最小修改后的Git差异和回归测试,3项测试全部通过。该结果不是Codex自动生成。

  • 是否只修改了与根因有关的文件;
  • 原有输入校验和异常行为是否保留;
  • 是否需要补充0%、100%和小数折扣测试;
  • 格式化、静态检查和完整测试集是否通过;
  • 是否出现与当前任务无关的自动重构。

七、常用命令

# 启动交互模式
codex

# 查看登录状态
codex login status

# 指定项目目录
codex -C ./my-project

# 只读分析
codex -C ./my-project --sandbox read-only

# 允许修改工作区,并在需要时请求人工审批
codex -C ./my-project   --sandbox workspace-write   --ask-for-approval on-request

八、常见问题

1. 终端提示找不到codex命令

npm prefix -g
npm list -g --depth=0

macOS和Linux通常检查全局目录下的bin是否在PATH中;Windows通常检查npm全局目录本身是否已加入PATH。也可以重新打开终端后再测试codex --version。

2. 登录后仍显示未登录

codex login status

必要时先运行codex logout,再重新登录。还应确认不同终端没有使用不同的CODEX_HOME或安装路径。

3. 工具无法正确理解项目

先补充README、启动方式、测试命令和验收标准,把任务拆成“项目理解”和“代码修改”两个阶段。不要一开始就要求大范围重构。

4. 修改范围过大

在任务中明确写出“最小修改、不得改无关格式、先说明计划”,并通过Git检查点和git diff审核。发现方向不对时,先回退,再以只读方式重新分析。

5. 测试通过就说明可以上线吗?

不一定。现有测试只能覆盖已经编写的用例,还需要检查安全、权限、异常处理、性能和业务边界。AI生成或人工完成的修改,都不能绕过代码审查。

九、本文能够说明什么?

本文展示了CLI安装和状态检查、本地Python Bug复现、人工最小修改后的Git差异与回归测试,以及登录Codex后可以采用的权限和任务组织方式。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐