OpenAI CLI 是 OpenAI 官方的命令行工具,用来调用 OpenAI REST API。你安装一个 openai 二进制文件,设置 OPENAI_API_KEY,就可以在终端或 shell 脚本里调用 API:openai responses create、openai files upload、openai batches create、openai images generate。它不是 Codex CLI。Codex 是编码智能体;openai 每条命令发送一次 API 请求。
本指南涵盖安装、鉴权、值得先跑的命令,以及它和 Codex CLI、Python SDK 放到 PATH 上的旧 openai 命令有何不同。下面每条命令和输出都来自 1.44.1,安装并运行于 2026 年 10 月 28 日。
什么是 OpenAI CLI?
OpenAI CLI 是一个开源 Go 二进制文件,由 OpenAI 在 github.com/openai/openai-cli 发布,许可证为 Apache 2.0。命令与 API 资源对应(responses、files、batches、images、audio、vector-stores、admin),因此用 curl 或 SDK 发送的请求,可以变成带参数的一条终端命令。
它并不算全新。1.0.0 于 2026 年 5 月 5 日发布,此后项目打了 99 个版本;1.44.1 于 2026 年 10 月 27 日发布。把它当成一个你可能错过的成熟工具,而不是一次新品发布。
第一次运行时你会看到:

帮助按用途分组:生成内容(responses、chat、images、audio、videos),数据和检索(files、uploads、vector-stores、embeddings),模型与任务,管理,以及一组从不访问网络的本地工具。帮助本身不需要 API 密钥,也不需要联网,所以 openai <command> --help 是查参数最快的办法。
它适合不想写脚本就试一条提示的开发者,想把文件上传和批处理放进 cron 的运维人员,以及需要文档化接口、而不是手写 curl 的编码智能体。
如何安装 OpenAI CLI
项目 README 列出三条安装路径:
- 预编译二进制。 从 GitHub Releases 下载对应操作系统和架构的压缩包(提供 macOS、Linux 和 Windows 构建),解压后把
openai放到 PATH。 - Homebrew。
brew install openai/tools/openai
- Go。 需要 Go 1.26 或更高版本。
go install 'github.com/openai/openai-cli/cmd/openai@latest'
export PATH="$PATH:$(go env GOPATH)/bin"
自行管理的发行版可以在交互运行时自我更新。如果在 CI 里固定版本,设置 OPENAI_CLI_NO_AUTO_UPDATE=1 以停止自动安装,或设置 OPENAI_CLI_NO_UPDATE_CHECK=1 完全关闭更新检查。Homebrew 和 Go 安装仍会显示更新提示,但升级交给包管理器。
OpenAI CLI 的鉴权如何工作
CLI 从 OPENAI_API_KEY 读取标准 API 密钥(或 --api-key 参数;应避免使用它,因为它会进入 shell 历史)。如果还没有密钥,可以参考「如何获取 OpenAI API 密钥」。
最快的设置方式是内置指南:
openai help setup
它会指向 API 密钥页面,并给出 Bash 或 zsh 的 read -rs OPENAI_API_KEY 一行,这样输入的密钥被隐藏,也不会回显。
忘了设置密钥时,你会得到清晰、可被脚本处理的失败。下面是未设置密钥时的真实输出:

它以状态码 1 退出,并说明密钥可以从哪里来。脚本需要原始错误体时,加上 --format-error json。
其他鉴权设置:
| 设置 | 参数 | 环境变量 | 用途 |
|---|---|---|---|
| API 密钥 | --api-key |
OPENAI_API_KEY |
所有普通 API 调用 |
| 管理密钥 | --admin-api-key |
OPENAI_ADMIN_KEY |
openai admin ...(用量、项目);项目密钥不能代替它 |
| Base URL | --base-url |
OPENAI_BASE_URL |
把 CLI 指向另一台主机或网关 |
| mTLS 证书和密钥 | --mtls-client-cert-file、--mtls-client-key-file |
OPENAI_MTLS_CLIENT_CERT_FILE、OPENAI_MTLS_CLIENT_KEY_FILE |
双向 TLS,需要显式的 HTTPS base URL |
值得先跑的 OpenAI CLI 命令
命令形状跟 API 一致:openai <resource> [subresource...] <command> [flags...]。下面这些命令值得放进工具箱。
调用 Responses API
openai responses create \
--model gpt-5.5 \
--input "Say this is a test"
长提示不需要转义。JSON 输入参数可以用 @path 从文件读取:
openai responses create --model gpt-5.5 --input @prompt.txt
如果管道传入的 JSON 或 YAML 来自你不信任的来源,设置 OPENAI_UNTRUSTED_STDIN=1,避免该输入触发本地文件读取。
上传和获取文件
openai files upload report.txt --purpose user_data
openai files get file-example
openai files download file-example --output downloaded-report.txt
运行批处理
在 requests.jsonl 里每行放一个请求,各自带唯一的 custom_id,然后:
openai files upload requests.jsonl --purpose batch
openai batches create --input-file-id file-example \
--endpoint /v1/responses --completion-window 24h
openai batches wait batch_example --output-dir ./results
batches wait 会轮询到批处理结束并保存结果文件,省掉你本来要写的轮询循环。项目的批处理说明把当前限制列为每个输入文件 50,000 个请求、200 MB,完成窗口为 24h。批处理价格与同步调用不同;排队大任务前可以看「OpenAI API 价格」。
在本地数 token,不需要密钥
tokenizer 命令完全离线:不需要凭证,不访问网络,也不保存输入。

默认编码是 o200k_base,openai tokenizer encodings 会列出其他编码(cl100k_base,外加两个旧编码)。帮助对限制说得很直白:纯文本计数不包括请求结构和多模态输入,所以它不是账单数字。要在服务端计数,用 openai responses input-tokens count。
让脚本能解析输出
默认输出是可读文本,即使经过管道也是。要数据就明确指定:
openai models list --format jsonl | jq '.id'
openai files list --format json > files.json
openai files get file-example --transform filename --raw-output
--format 接受 auto、text、json、jsonl、yaml、explore(交互式 JSON 查看器)和 pretty。--transform 用 GJSON 语法 抽取字段,更复杂的处理交给 jq。重定向前先检查退出状态:失败的请求可能留下不完整的文件。
调用异常时,--debug 会加上每次尝试的 HTTP 耗时;分享日志前先清除敏感信息。如果遇到 429,可以看「OpenAI 速率限制」。
OpenAI CLI、Codex CLI 和旧 openai 命令
三个工具来自同一家厂商,其中两个名字还一样。简表如下:

| OpenAI CLI | Codex CLI | 旧版 Python openai |
|
|---|---|---|---|
| 命令 | openai |
codex |
openai |
| 它是什么 | REST API 客户端 | 在项目里读取、编辑并运行代码的编码智能体 | 随 openai Python 包附带的 CLI |
| 安装 | 二进制、Homebrew 或 Go | npm install -g @openai/codex 或 brew install --cask codex |
pip install openai |
| 鉴权 | OPENAI_API_KEY |
自己处理登录 | API 密钥 |
| 何时使用 | 你要发一次具体的 API 调用,或在脚本里做 API 步骤 | 你要智能体实现或调试一处改动 | 你还在维护基于它的旧脚本 |
运行 openai codex 时,OpenAI CLI 自己会打印 Codex 的安装命令,并说明那是另一个工具,登录也分开。智能体一侧可以看「Codex CLI 指南」,源码在 github.com/openai/codex。
留意 PATH 冲突
openai Python 包也会安装一个名为 openai 的二进制文件。如果你跑过 pip install openai,可能有两个:

在这台 Mac 上,Python 那个报告 openai 2.30.0,并提供 api、tools、migrate 和 grit 子命令;Go 那个报告 openai version 1.44.1。PATH 里靠前的目录胜出。安装后运行 which -a openai 和 openai --version。如果输出是 openai version 1.44.1(或更新),就是对的那个。如果打印的是裸版本号,例如 openai 2.30.0,就调整 PATH,或用完整路径调用新二进制。
OpenAI CLI 旁边还缺什么
OpenAI CLI 只调用 OpenAI。它不了解你自己的 API:应用在 OpenAI 之上暴露的端点、部署环境,以及用来证明一次发布没有弄坏东西的断言。那是另一项工作。
原文这一节给出了来源产品 CLI 的安装、导入 OpenAPI 和运行测试用例的命令,并写明其免费方案最多 4 名用户。Apifox 是否提供同名 CLI,待核实,因此不照搬。你可以用现有的接口测试工具,对自有端点断言状态码和字段,并把密钥留在环境变量里。
常见问题
OpenAI CLI 免费吗? 工具本身免费,以 Apache 2.0 开源。它发出的 API 调用按正常 API 价格记到你的 OpenAI 账户。openai tokenizer 这类本地命令,以及所有 --help 页面,不花钱,也不需要密钥。
OpenAI CLI 和 Codex CLI 是同一个吗? 不是。openai 发送直接的 API 请求,一条命令一次。codex 是编码智能体,会读取和编辑项目并运行命令。它们分开安装,也分开鉴权。
在 Mac 上如何安装 OpenAI CLI? 运行 brew install openai/tools/openai,或从 GitHub Releases 下载 macos_arm64(Apple Silicon)或 macos_amd64(Intel)压缩包,把二进制放到 PATH。然后运行 openai --version,确认没有撞上旧的 Python openai 命令。
OpenAI CLI 能用在 shell 脚本和 CI 里吗? 能,这是它的主要设计目标。用 --format json 或 jsonl 得到可解析输出,检查退出状态,把密钥放在密钥管理器提供的 OPENAI_API_KEY 里,并设置 OPENAI_CLI_NO_AUTO_UPDATE=1 以固定版本。
OpenAI CLI 何时发布? 1.0.0 于 2026 年 5 月 5 日在 GitHub 发布。截至 2026 年 10 月 28 日,最新版本是 10 月 27 日的 1.44.1。
开发必备:API 全流程管理神器 Apifox
介绍完上文的内容,我想额外介绍一个对开发者同样重要的效率工具 —— Apifox。作为一个集 API 文档、调试、设计、测试、Mock、自动化测试于一体的工具,Apifox 是目前提升研发效率的首选。
如果你正在开发项目,不妨试试其极其友好的界面设计,它完全兼容 Postman 和 Swagger 数据格式,导入数据非常方便,,即使是新手也能很快上手,点击这里即可注册使用。

值得一提的是,除了个人和常规团队使用,针对有高安全合规要求、或需要在内网环境协作的企业,Apifox 还提供了深度定制的私有化部署方案。
获取专属报价与部署方案
详细的私有化部署系统架构与安全白皮书
针对您公司规模的专属报价单
免费的 1v1 专属产品演示 (Demo) 机会