Codex: Codex 非交互模式与跨平台

最后更新:2026-08-31

非交互模式让 Codex 适合脚本和自动化,Windows 和 Worktrees 则需要特殊配置。

📋 前置知识:了解 Codex CLI 基本操作

1. 你将学到


2. 非交互模式

(1) 启动方式

BASH
# 直接传入任务,执行完退出
codex "修复所有 lint 错误"

# 静默模式,减少输出
codex --quiet "生成 API 文档" > api-docs.md

# JSON 输出,适合程序解析
codex --json "列出所有 TODO" > todos.json

# 完全自动化
codex --full-auto --approval-policy approve "运行所有测试并修复失败的"

(2) 管道输入

BASH
# 从 stdin 读取
echo "解释这段代码" | codex --quiet

# 从文件读取
cat error.log | codex --quiet "分析错误根因"

# 结合 git
git diff main | codex --quiet "审查变更"

(3) 退出码

退出码 说明
0 任务成功完成
1 任务失败
2 参数错误
130 用户中断(Ctrl+C)

▶ 示例 1: Alice 的自动化脚本

BASH
#!/bin/bash
# auto-fix.sh - 每日自动修复脚本

# 拉取最新代码
git pull origin main

# 修复 lint
codex --full-auto --quiet "修复所有 lint 错误"

# 生成缺失测试
codex --full-auto --quiet "为没有测试的源文件生成单元测试"

# 运行测试
npm test
if [ $? -eq 0 ]; then
  git add -A
  git commit -m "chore: daily auto-fix"
  git push origin main
  echo "✅ Auto-fix completed and pushed"
else
  echo "❌ Tests failed, skipping push"
fi

3. Windows 环境

(1) 安装方式

POWERSHELL
# 方式一:npm(需要 Node.js)
npm install -g @openai/codex

# 方式二:WSL(推荐)
wsl
# 在 WSL 中按 Linux 方式安装

(2) PowerShell 配置

POWERSHELL
# 设置 API Key
$env:OPENAI_API_KEY = "sk-你的密钥"

# 永久配置
[System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-你的密钥", "User")

# 设置 Base URL(DeepSeek)
$env:OPENAI_BASE_URL = "https://api.deepseek.com"

(3) 常见问题

问题 解决方案
路径分隔符不同 使用 path.join() 或正斜杠
中文编码问题 设置 $OutputEncoding = [System.Text.Encoding]::UTF8
权限受限 以管理员运行 PowerShell
命令不存在 检查 PATH 环境变量

(4) WSL 推荐

BASH
# 在 WSL 中安装和使用 Codex
sudo npm install -g @openai/codex
export OPENAI_API_KEY="sk-xxx"
codex

4. Git Worktrees 集成

(1) 什么是 Worktrees

Git Worktrees 让你在同一个仓库中同时检出多个分支到不同目录,适合并行开发。

BASH
# 创建 worktree
git worktree add ../feature-auth feature/auth
git worktree add ../feature-payment feature/payment

(2) Codex + Worktrees

每个 Worktree 可以运行独立的 Codex 实例:

BASH
# Terminal 1: 在 auth feature 上工作
cd ../feature-auth
codex "实现 JWT 认证"

# Terminal 2: 在 payment feature 上工作
cd ../feature-payment
codex "添加 Stripe 支付"

▶ 示例 2: Bob 的并行开发

BASH
# Bob 用 Worktrees 并行开发
git worktree add ../fix-bug-123 fix/bug-123
git worktree add ../new-feature new/feature-x

# Terminal 1
cd ../fix-bug-123
codex --full-auto "修复 Issue #123"

# Terminal 2
cd ../new-feature
codex "实现功能 X"

# 两个任务并行执行,互不影响

(3) Worktrees 清理

BASH
# 查看所有 worktrees
git worktree list

# 删除 worktree
git worktree remove ../feature-auth

# 清理失效 worktree
git worktree prune

5. 跨平台注意事项

注意点 macOS/Linux Windows
路径分隔符 / \(建议用 /
换行符 LF CRLF
环境变量 export KEY=value $env:KEY = "value"
Shell bash/zsh PowerShell/WSL
权限 chmod 属性对话框

❓ 常见问题

Q 非交互模式能用 Computer Use 吗?
A 不能。Computer Use 需要图形界面和交互确认,非交互模式不支持。
Q Windows 原生和 WSL 哪个更好?
A WSL 更好。Codex CLI 在 Linux 环境下兼容性最好,WSL 提供原生 Linux 体验。
Q Worktrees 中的 Codex 实例会冲突吗?
A 不会。每个 Worktree 是独立目录,Codex 实例互不干扰。但不要在两个实例中修改同一分支的同一文件。
Q 非交互模式如何处理确认请求?
A 需要 --approval-policy approve--full-auto,否则会卡住。建议只读操作用 deny,需要修改用 approve
Q Windows 上的中文乱码怎么办?
A 设置 PowerShell 编码为 UTF-8:[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

📖 小节


📝 作业

  1. 基础题(难度⭐):用非交互模式执行一次代码审查,输出到文件。
  2. 进阶题(难度⭐⭐):编写一个自动化脚本,用非交互模式完成 lint 修复 + 测试 + 提交。
  3. 挑战题(难度⭐⭐⭐):用 Git Worktrees 设置并行开发环境,两个 Codex 实例同时工作在不同分支上。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏