OpenAI 三年没出 CLI,现在突然出了,为啥
OpenAI 三年没出 CLI,现在突然出了,为啥
OpenAI 这两天上线了 openai-cli,官方命令行工具。
听起来挺普通对吧。任何 SaaS 公司都会出 CLI,AWS、Stripe、Vercel 都是开局就有 CLI。但 OpenAI 这个 CLI 特殊在两个地方:
第一,这是 OpenAI 历史上第一个官方 CLI。GPT-3 API 公开开放是 2021 年,到现在差不多 5 年。SDK 出了一茬又一茬,Python、Node、Go、Java 一个不缺。Web Console 也越做越花。就是没 CLI。
第二,它出现的时机正好是程序员的 AI 工作流最近一年发生了根本性变化的时候。这不是巧合。
下面把这两件事拆开说。
一、迟到三年的产品判断
很少有人会专门写一篇文章讨论一个 SaaS 公司什么时候出 CLI。但 OpenAI 这个时机点得拉出来看。
OpenAI API 公开第一天起,主推的就是 Python SDK + Playground。Playground 是网页版的对话框,给产品经理和初学者用;SDK 是 import openai 然后写代码,给工程师用。这两套覆盖了当时几乎所有”调 API”的姿势。
那时候没 CLI 是合理的。因为 2021-2023 那个阶段,调 OpenAI API 的人主要在做两件事:在自己的应用里嵌入 chat 功能,或者在 Notebook 里跑实验。两件事都跟”在 terminal 里直接喊 AI”没什么关系。
但 2024 年开始情况变了。先是 Claude Code 出来,让程序员开始习惯在 terminal 里直接跟 AI 协作。然后 Cursor、Cody 这些把 AI 塞进 IDE。再然后 aichat、shell-gpt、aider 一系列开源 CLI 把这件事推向极致。
到 2026 年这个时间点,绝大多数程序员调 OpenAI API 已经不是为了写应用了,而是为了让 AI 帮他们干活。写 commit message、写脚本、解释报错、grep 日志找模式、生成测试数据、临时翻译。这些场景不需要 SDK,不需要 IDE 集成,需要的就是一个 openai "..." 这种最简单的命令。
OpenAI 这三年没动 CLI,是因为它的产品判断一直停留在”我们是 API 提供商”。等 Anthropic 借 Claude Code 把 terminal AI 这个生态做起来之后,OpenAI 才反应过来——它的客户已经不是开发者了,是程序员。开发者写应用调 API,程序员要的是 AI 帮自己干活。
这两个角色长期被混为一谈,但行为模式完全不同。
openai-cli 这个发布,是 OpenAI 第一次把”程序员”明确单列出来当用户。迟到了,但终于到了。
二、为什么程序员需要 CLI 而不是 SDK
如果你已经在用 SDK,可能会问:CLI 不就是 SDK 套个 wrapper 吗?我自己花 20 行代码也能写一个,何必非要官方版?
有道理,但漏了三件事。
第一件,CLI 天生跟 unix pipe 友好。
git diff | openai "用一句话总结这次改动" > commit_msg.txt
这种链式用法在 SDK 里得自己写胶水代码,CLI 直接 pipeline 起来。然后 jq、grep、awk、sed 这些老朋友全都自动派上用场。整个 unix toolkit 突然就跟 OpenAI API 接通了。

第二件,CLI 把 auth 和环境管理统一了。
写过那种”用 Python 调 OpenAI 写小工具”的人都知道,每个工具都得 import openai、读环境变量、catch 异常。重复工作。CLI 一旦装好,所有调用点都共享同一份 auth、同一套重试策略、同一份模型默认值。
第三件,CLI 极大降低了”想到 → 用上”的距离。
你脑子里冒出”让 AI 帮我看下这段日志”的瞬间,到你真用上的距离,决定了你这天能用多少次 AI。SDK 的距离是”打开 IDE → 新建 .py → 写 import → 写代码 → 跑”,2-3 分钟。CLI 是”按 Ctrl+R → 找历史命令 → 改输入 → 回车”,5 秒。
5 秒和 3 分钟,决定了一天里你会用 50 次 AI 还是 5 次。
好家伙,这不是工具的差别,是工作流密度的差别。

三、openai-cli 跟现有生态怎么共处
CLI 这事儿 OpenAI 不是第一家做。整个开源社区已经做了好几年了。
aichat:Rust 写的,支持几乎所有主流 LLM provider,配置 YAML,能跑 RAG。已经是命令行 AI 工具的事实标准之一。
shell_gpt(命令行里调用名是 sgpt):纯 OpenAI 包装的 CLI,特点是命令行体验做得轻,能直接 sgpt "how to find files modified in the last hour" 拿命令。
aider:专攻 git 仓库内的 AI 协作,能直接修改代码并 commit。
Claude Code:Anthropic 自家的 CLI,但已经是个完整开发环境,超越了”调 API”的范畴。
OpenAI 现在出 openai-cli 进入这个生态,主要价值是官方背书 + 默认体验。三个具体好处:
第一,默认认证体验最简单。其它工具都要你自己配 OPENAI_API_KEY,openai-cli 大概率会跟 OpenAI 账号体系直连,登录一次就用所有 OpenAI 服务,不用单独管 key。
第二,模型支持总是最新。新模型发布当天就能在 openai-cli 里用,第三方工具通常要等几天甚至几周才跟上。
第三,问题排查路径短。第三方工具出问题你不知道是工具的 bug 还是 API 的 bug,官方工具至少把这一层模糊性消掉了。
但 openai-cli 也有它注定弱的地方。它只支持 OpenAI 一家的模型。对很多程序员来说,主力模型其实是 Claude(Sonnet 4.6 / Opus 4.7 / Haiku 4.5)做编程,OpenAI 模型用得不多。这种情况下 aichat 这种 multi-provider 工具仍然是首选。
实际场景里大概率会变成:openai-cli 装着,但只在用 OpenAI 特定能力(比如 Sora、DALL-E、Whisper、Realtime API)的时候才打开。其它日常 AI 协作还是 Claude Code 或 aichat。
这个分工挺合理。让 OpenAI 专心服务那些它独有的能力,让通用 LLM 协作走开源工具。

四、值得抄进自己工作流的三个用法
下面三个用法思路普适,换其它 CLI 工具(aichat / shell-gpt / 任何带 stdin 的 LLM 命令)也能直接套。
第一个:commit message 自动生成
# .gitconfig 加一行 alias
[alias]
ai-commit = "!f() { git diff --cached | openai 'concise conventional commit message in one line' | git commit -F -; }; f"
之后每次 git ai-commit 直接把 staged 改动喂给 OpenAI,让它出一行 conventional commit 风格的提交信息,然后用这条信息 commit。
写过 git hook 的都懂,这种小工具用 SDK 写也就 30 行代码,但你得专门为这个事儿打开编辑器、写代码、装依赖。CLI 让它变成 bash 一行。
第二个:日志/输出快速摘要
# 看完整 stack trace 太累,先让 AI 拎要点
docker logs my-service --tail 200 | openai "找出最严重的 3 个错误,给出可能原因"
或者:
# CI 失败时
gh run view 12345 --log | openai "这个 CI 为什么挂"
这种用法以前你得开 Web Console 复制粘贴,现在一行 pipe 完事。
第三个:临时数据转换
# CSV 转 JSON 但 schema 不规整
cat messy.csv | openai "把这个 CSV 转成 JSON,字段名规范化为 snake_case,数字字段保持数字类型"
这种活儿用 awk/sed 写得心累,用 Python pandas 写得费时,用 AI 写一句话搞定。CLI 让它跟其它命令行工具完全融合。
三个用法的共同点:都是脑子里冒一个想法到执行完成不超过 30 秒的任务。这种密度才是 CLI 真正改变工作流的地方。
写在最后
最近这一年程序员的 AI 工作流有个明显的回潮:从 “IDE 里嵌入 AI 副驾” 变成 “AI 回到 terminal 当协作者”。
GitHub Copilot 那种 “AI 在编辑器里给你 ghost text” 没消失,但已经不是唯一形态。Claude Code 出来之后,越来越多程序员一天里花在 terminal AI 上的时间超过了在 IDE AI 上的时间。
这不是回到过去,是 unix 哲学跟 AI 终于接通了。做一件小事,做好它,能跟其它工具组合——这一句话讲的就是 CLI 的本质,也讲的就是程序员需要 AI 在 terminal 里的本质。
OpenAI 这次出 openai-cli,不是发布了一个新产品,是承认了它的客户群体已经变了。
今晚回家可以试试。哪怕一开始只用来生成 commit message,跑顺了再扩展别的。三天之后你会发现自己已经回不去 Web Console 了。
终端这片地,从来都该是程序员的主场。