Codex CLI初体验

前言

由于Claude Code对国内使用的限制,OpenAI Codex的性价比和受欢迎程度明显提高,今天抽时间来体验一波。对其他AI Code CLI感兴趣的小伙伴也可以看往期内容:

当前使用版本

codex-cli:0.53.0

限制

  • 限制国内,需要科学上网
  • 仅向 ChatGPT Plus、Pro、Team、Edu 和 Enterprise 用户开放

优势

  • Edu用户可免费体验
  • 默认使用GPT 5模型,支持切换 gpt-5-codex 模型
  • Rust 语言编写,速度快、效率高

简介

Codex 是 OpenAI 开发的一款专为软件工程师设计的云端编程智能体,专门优化了代码生成能力。它基于 GPT 架构构建,通过对大量公开代码库(包括 GitHub 上的开源项目)进行训练,能够理解和生成多种编程语言的代码。

官方文档地址:developers.openai.com/codex/cli

Github地址:github.com/openai/code...

安装

Codex CLI提供了多种安装方式,安装也很方便,可以根据自己的环境选择安装方式。

使用npm

ruby 复制代码
$ npm install -g @openai/codex

使用Homebrew

php 复制代码
$ brew install codex

验证安装

安装完成后,在命令行终端输入以下命令:

php 复制代码
$ codex --version
或者
$ codex -V

命令行终端输出以下内容表示安装成功

更新升级

Codex CLI没有提供更新命令,目前更新只能使用如下命令

ruby 复制代码
# 更新
$ npm update -g @openai/codex
# 重新安装最新版本
$ npm install -g @openai/codex@latest

基本使用

登录授权

Codex CLI安装成功后,在命令行终端输入 codex 即可启动,但想要正常使用Codex还需要进行登录授权操作,Codex同样提供了 手动授权 和 自动授权 2种方式。

1)手动授权

手动授权提供了使用 ChatGPT 和 API Key 2种授权方式:

  • 使用ChatGPT:打开ChatGPT官网授权
  • API Key:填写ChatGPT API Key,授权完成后会存储到 ~/.codex/auth.json 文件中

授权成功后即可进入Codex CLI界面

2)自动授权

Codex CLI的自动授权配置也是相对简单的,目前版本只支持全局授权配置

在命令行终端导出 OPENAI_API_KEY

ini 复制代码
# macOS
$ export OPENAI_API_KEY="sk-你的API密钥"
# windos
$ setx OPENAI_API_KEY=sk-你的API密钥

或者在 ~/.codex/auth.json 文件中 OPENAI_API_KEY 配置

json 复制代码
{
  "OPENAI_API_KEY": "sk-你的API密钥"
}

配置完成后,在命令终端输入 codex 启动,首次使用会提示授权提示

授权完成后即可进入Codex CLI的主界面,Codex CLI的主界面并不像Gemini CLI和Claude Code CLI那样有好看的对话框样式,光标在哪哪里就是输入框

命令行参数

Codex CLI同样提供了参数配置,在命令行输入 codex --help 可以快速查看Codex CLI提供的参数,包含 命令 和 可选参数,我们可以很方便的对Codex CLI进行默认配置覆盖和快速使用。

Codex CLI命令行参数:

  • exec:非交互式运行 Codex [别名:e]
  • login:管理登录
  • logout:移除存储的身份验证凭据
  • mcp: MCP 服务器模式运行 Codex 并管理 MCP 服务器
  • proto:通过标准输入 / 输出运行协议流 [别名:p]
  • completion:生成 shell 补全脚本
  • debug:内部调试命令
  • apply:将 Codex 代理生成的最新差异作为 "git apply" 应用到本地工作树 [别名:a]
  • resume:恢复之前的交互式会话(默认使用选择器;使用 --last 可继续最近的会话)

Codex CLI提供了很多命令,这里我们只尝试一些常用的命令。在命令行终端输入指令,Codex CLI就会直接调用模型进行处理,而不是打开Codex CLI的交互式命令

shell 复制代码
$ codex exec --full-auto "查看项目结构"

在命令行终端输入 codex mcp list 可以快速查看mcp列表

在命令行终端输入 codex resume 会列举之前对话的记录,选择一个记录可以恢复到该对话的交互式会话状态

可以看到上下文tokens还是保留的

ChatGPT最近发布了 gpt-5-codex 模型,也可以通过命令行参数一键设置

php 复制代码
$ codex -m gpt-5-codex

Codex CLI支持图像输入,使用 --image 或 -i 可接收图像上下文,注意这里的图像只能是本地图片路径

arduino 复制代码
$ codex --image img1.png,img2.jpg "总结图像内容"

命令行及快捷键列表

在终端输入 /,可以看到Codex CLI提供所有指令,可以看到比Gemini CLI和Claude Code CLI要明显少很多。

命令行列表:

  • /model:选择要使用的模型和推理工作量,提供了gpt-5 minimal、low、medium 和 high 4个档位
  • /approvals:选择 Codex 无需批准即可执行的操作,提供了 Read Only、Auto 和 Full Access 3种模式
  • /new:在对话过程中开始新的聊天
  • /init:创建一个包含 Codex 指令的 AGENTS.md 文件
  • /compact:总结对话以避免达到上下文限制
  • /diff:显示 git 差异(包括未跟踪的文件)
  • /mention:提及一个文件,相当于@操作
  • /status:显示当前会话配置和令牌使用情况
  • /mcp:查看MCP工具列表
  • /logout:退出登录
  • /quit:退出Codex

快捷键列表:

  • 回车:发送消息
  • Ctrl+J:换行
  • Ctrl+T:文本记录
  • Ctrl+C:退出交互式命令

配置文件

Codex CLI目前只提供了全局配置方式

官网配置文件文档:github.com/openai/code...

Codex CLI提供了 ~/.codex/config.toml 全局配置文件,可以对Codex CLI的模型及提供商进行自定义配置,基本配置格式如下:

ini 复制代码
model = "gpt-4o"
model_provider = "openai-chat-completions"
[model_providers.openai-chat-completions]
# 将在 Codex 用户界面中显示的提供商名称
name = "OpenAI using Chat Completions"
# 提供商API请求路径后面将添加`/chat/completions`发送请求
base_url = "https://api.openai.com/v1"
# API Key,发送请求将被添加到`Bearer TOKEN` HTTP header
env_key = "OPENAI_API_KEY"
# wire_api 的有效值为 "chat" 和 "responses"。如果省略,默认值为 "chat"。
wire_api = "chat"
# 请求额外参数
query_params = {}

该配置使得将 Codex CLI 与非 OpenAI 模型一起使用成为可能,只要提供商提供与OpenAI兼容的API就可以正常使用。

以Ollama为例,配置如下:

ini 复制代码
model = "gpt-4o"
model_provider = "ollama"
[model_providers.ollama]
name = "Ollama"
base_url = "http://localhost:11434/v1"

以Mistral为例,配置如下

ini 复制代码
model = "mistral-large-latest"
model_provider = "mistral"
[model_providers.mistral]
name = "Mistral"
base_url = "https://api.mistral.ai/v1"
env_key = "MISTRAL_API_KEY"

使用时先在命令行终端执行命令导出环境变量,然后启动Codex CLI

ini 复制代码
export MISTRAL_API_KEY="MISTRAL_API_KEY"

或者在 auth.json 文件添加API Key

json 复制代码
{
  "OPENAI_API_KEY": "your_custom_api_key"
}

上面配置文件都是单模型配置,Codex的config.toml还支持多模型配置,通过指定 profile 类型即可快速切换模型配置

ini 复制代码
profile = "gpt3"
[profiles.mistral]
model = "mistral-large-latest"
model_provider = "mistral"
[profiles.gpt3]
model = "gpt-3.5-turbo"
model_provider = "openai-chat-completions"
[profiles.packycode]
model_provider = "packycode"
model = "gpt-5"
model_reasoning_effort = "high"
disable_response_storage = true
[model_providers.openai-chat-completions]
name = "OpenAI using Chat Completions"
base_url = "https://api.openai.com/v1"
wire_api = "chat"
env_key = "OPENAI_API_KEY"
[model_providers.mistral]
name = "Mistral"
base_url = "https://api.mistral.ai/v1"
wire_api = "chat"
env_key = "MISTRAL_API_KEY"
[model_providers.packycode]
name = "packycode"
base_url = "https://oai-api.fkclaude.com/v1"
wire_api = "responses"
env_key = "packycode"

配置项较多,对其他配置项感兴趣的小伙伴可以自行了解。

Chat对话

启动Codex CLI聊天界面如下

在光标处输入提示词即可使用Codex CLI处理任务

输入 / 快捷键,可以查看交互式命令列表

输入 @ 快捷键或者使用 /mention 交互指令可以引文件上下文,这里有个不太友好的地方,需要输入内容才会进行文件匹配,而且不支持文件夹引入。

Codex CLI也支持图像上下文引入,输入提示词可对图像进行分析等操作

记忆文件

在执行 /init 命令之前,我们需要先确定当前工作区的操作权限,Codex CLI不像Gemini CLI和Claude Code CLI需要权限时会询问,也没有提供切换模式的功能,因此我们需要创建或者编辑等权限时需要提前为工作区授权。

我们可以使用交互式指令 /approvals 切换授权模式,工作区默认为只读模式

授权完成后,执行 /init 命令创建记忆文件,Codex CLI会先输出一个记忆文件的要求和建议清单,不知道如何写的小伙伴可以按照清单提示编写

整理完成后,Codex CLI会将记忆文件内容输出到 AGENTS.md 文件

创建完成后,可以看到工作区根目录下会多一个 AGENTS.md 文件,内容和建议的记忆文件清单格式也是对照的

当然我们也可以修改和自己手动创建记忆文件,例如这里我可以让Codex CLI对话输出内容以中文形式展示

重启Codex CLI,再次输入对话,可以看到此时Codex CLI就会以中文输出内容

也可以新建 ~/.codex/AGENTS.md 全局记忆文件,不过Codex好像对用户级记忆文件支持的不是很好

MCP服务

Codex CLI支持MCP服务功能并提供了一系列MCP命令行工具,在命令行终端输入 codex mcp --help 可以查看MCP相关命令

命令行工具:

  • serve:运行 Codex MCP 服务器(标准输入输出传输)
  • list:列出已配置的 MCP 服务器
  • get:显示已配置的 MCP 服务器的详细信息
  • add:添加全局 MCP 服务器条目
  • remove:删除全局 MCP 服务器条目

以context7为例,在命令行输入如下指令安装

ruby 复制代码
$ codex mcp add context7 npx -y @upstash/context7-mcp

安装成功后使用 codex mcp list 查看已安装的MCP

在 ~/.codex/config.toml 全局配置文件中可以看到已添加到MCP服务配置信息

使用命令 codex mcp get context7 查看指定MCP的配置信息

也启动Codex CLI,使用交互式命令 /mcp 查看已安装MCP的工具信息

在Codex CLI中使用MCP服务和其他AI命令行终端一样,可以直接指定MCP调用,也可以等Agent判断自行调用即可。

perl 复制代码
查询React新特性,use context7 

调用完成后效果如下:

自定义命令

注意事项:Codex CLI自定义命令目录必须是 prompts

Codex CLI的自定义命令是存放在 ~/.codex/prompts/ 目录下以 .md 结尾的Markdown文件,这和Claude Code CLI是有些差异的。

这里以重构项目自定义命令为例,创建 ~/.codex/prompts/refactor.md 文件,输入提示词

复制代码
按照业界的最佳实践以最高的标准,帮我重构这个项目的代码

重启Codex CLI,输入 /refactor 检索自定义命令

回车执行,Codex CLI就会按照要求创建任务计划开始执行

在Codex CLI 0.44 版本提供了对带参自定义命令的支持,主要提供了 位置参数 和 命名参数 2种自定义命令参数方式

1)位置参数

和Claude Code CLI的动态位置参数一样,Codex CLI也支持通过 $+数字 形式的动态取值方式获取外部传递的参数,以获取天气信息为例,创建 ~/.codex/prompts/weather.md

bash 复制代码
帮我查看一下 $1 在 $2 这一天的天气

重启Codex CLI,输入命令

bash 复制代码
/prompts:weather 北京 明天

可以看到Codex CLI准确获取了我们传递的参数并补全了提示词

2)命名参数

命名参数(name arguments)是Codex CLI提供的独特的另一种动态传递参数的方式 ,还是以获取天气信息为例,创建 ~/.codex/prompts/weather_with_named.md

bash 复制代码
帮我查看一下 $CITY $DATE 的天气

重启Codex CLI,输入命令 /weather_with_named 回车,Codex CLI会自动补全参数

填写对应的参数执行

这里有个注意事项,占位参数名必须为全大写,如果写成小写将无法识别

可以看到改成小写的命名参数无法被识别,无法自动补全

即使手动补全也无法正常使用

bash 复制代码
/prompts:weather_with_named city="北京" date="明天"

产品定价

总结

我这次体验Codex CLI使用的是佬友提供的免费中转站,过程中没有遇到使用官方API Key的一些限制所以没有记录问题,以后遇到再做补充。Codex CLI整体体验下来感觉是比Gemini CLI、Claude Code CLI功能上要少很多,主要包括:

  • Codex CLI不支持项目级别授权方式配置
  • 授权、MCP等配置文件只支持用户(全局)配置
  • 没有Chat和Agent模式切换,不会询问权限,只能通过设置工作区权限模式来达到 auto-accept 的效果
  • 只支持项目记忆文件,不支持全局记忆文件
  • 不支持自定义hooks
  • mcp只支持stdio类型,sse和http需要借助三方工具

虽然Codex CLI在功能上还不够完善,但是随着Claude Code的限制,GPT5的热度和含金量还在上升,加上最近ChatGPT出了gpt-5-codex模型,Codex CLI还是值得入手的。

友情提示

见原文:Codex CLI初体验

本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。友情提示友情提示

相关推荐
墨风如雪3 小时前
字节TRAE SOLO:你的AI编程副驾已上线!
aigc
小溪彼岸3 小时前
腾讯发布CodeBuddy Code CLI平替Claude Code?
aigc·codebuddy
高洁018 小时前
具身智能-8家国内外典型具身智能VLA模型深度解析
深度学习·神经网络·aigc·transformer·知识图谱
程序员X小鹿9 小时前
用了这个更厉害的P图AI,我把PS卸了!文字也能无痕修改!1秒救废图(附保姆级教程)
aigc
杀生丸学AI10 小时前
【动态高斯重建】论文集合:从4DGT到OMG4、4DSioMo
人工智能·3d·aigc·三维重建·视觉大模型·动态高斯
aitoolhub14 小时前
重塑机器人未来:空间智能驱动产业智能化升级
大数据·人工智能·深度学习·机器学习·机器人·aigc
小溪彼岸15 小时前
Claude发布新功能Agent Skills,让你的Agent更专业
aigc·claude
雾岛心情1 天前
【ComfyUI】ComfyUI 的WordCloud词云节点
aigc·comfyui
是Dream呀1 天前
OpenAI与百度同日竞速,文心5.0以原生全模态重新定义AI理解力
语言模型·llm·aigc·文心一言·ernie-5.0