OpenAI 开源的命令行智能编码助手,旨在通过自然语言交互提升开发效率。它依赖 OpenAI 的 API 服务,仅需配置 OpenAI API Key 即可零门槛上手,支持代码生成、文件操作、版本控制和多模态(截图输入)等功能,适用于个人开发者、团队协作以及 CI/CD 流程。
主要功能
- 代码理解和生成:能够解释现有代码、生成新代码、重构代码,甚至为代码编写注释。
- 多模态交互:支持通过截图或图表输入来实现功能,结合视觉和文本信息进行开发。
- 文件操作:可以安全地读取、修改和提交文件,支持批量文件操作,如批量重命名。
- 自动执行任务:支持不同级别的自动执行模式,从仅提供建议到完全自动执行任务,用户可灵活选择。
- 安全沙盒运行:在隔离环境中运行命令,确保网络隔离和目录限制,保障用户系统安全。
- 版本控制集成:与 Git 集成,确保所有更改都在版本控制下进行,方便回溯和管理。
- 交互式开发:支持交互式命令行界面,用户可以实时与 Codex CLI 交互,逐步完成任务。
- 静默模式:支持非交互式模式,适用于 CI/CD 管道,可静默运行并输出结果。
- 定制化配置:用户可以通过配置文件自定义模型行为和开发指令,满足个性化需求。
安装和使用
快速入门
全局安装:
npm install -g @openai/codex
接下来,将您的 OpenAI API 密钥设置为环境变量:
export OPENAI_API_KEY="your-api-key-here"
注意:此命令仅为当前终端会话设置密钥。您可以将该行添加到 shell 的配置文件中(例如 ),但我们建议为 session 进行设置。提示:您还可以将 API 密钥放入项目根目录下的文件中:
export~/.zshrc.env
OPENAI_API_KEY=your-api-key-here
CLI 将自动从 (通过 ) 加载变量。
.envdotenv/config
运行:
codex
或者,将提示作为输入运行(并且可以选择在模式下运行):Full Auto
codex "explain this codebase to me"
codex --approval-mode full-auto "create the fanciest todo-list app"
就是这样 - Codex 将搭建一个文件,在沙箱中运行它,安装任何 缺少依赖项,并向您显示实时结果。批准更改并 它们将提交到你的工作目录。
从代码构建
# Clone the repository and navigate to the CLI package
git clone https://github.com/openai/codex.git
cd codex/codex-cli
# Enable corepack
corepack enable
# Install dependencies and build
pnpm install
pnpm build
# Get the usage and the options
node ./dist/cli.js --help
# Run the locally-built CLI directly
node ./dist/cli.js
# Or link the command globally for convenience
pnpm link
实战演习
场景1:使用其他模型
Codex 还允许您使用支持 OpenAI Chat Completions API 的其他提供程序。您可以在配置文件中设置提供程序或使用标志。可能的选项包括:--provider --provider
- openai (default)
- openrouter
- gemini
- ollama
- mistral
- deepseek
- xai
- groq
- any other provider that is compatible with the OpenAI API
如果您使用 OpenAI 以外的提供程序,则需要在配置文件或环境变量中将提供程序的 API 密钥设置为:
export <provider>_API_KEY="your-api-key-here"
如果您使用上面未列出的提供商,则还必须设置提供商的基 URL:
export <provider>_BASE_URL="https://your-provider-api-base-url"
场景2: 非交互式 / CI 模式
在管道中运行 Codex Head-less。GitHub Action 步骤示例:
- name: Update changelog via Codex
run: |
npm install -g @openai/codex
export OPENAI_API_KEY="${{ secrets.OPENAI_KEY }}"
codex -a auto-edit --quiet "update CHANGELOG for next release"
设置为静音交互式 UI 噪音。CODEX_QUIET_MODE=1