
摘要:命令行界面(CLI)曾被认为是“老程序员”的玩具、GUI 时代被淘汰的交互化石。但 2024 年开始,Claude Code、Gemini CLI、OpenAI Codex CLI 等终端原生 AI 工具密集发布;中国香港香港大学(HKU)数据科学实验室(HKUDS)更是在 2026 年开源了 CLI-Anything,让任意软件都能一键变成 AI Agent 可操控的 CLI 工具。本文从 CLI 的六十年历史出发,解析它的兴衰曲线,再深入 AI Agent 时代 CLI 不可替代的底层原因,最后用真实案例和 CLI-Anything 实战说明:为什么今天每个开发者都应该重新重视命令行。
1963 年,Louis Pouzin 为 CTSS 系统开发了 RUNCOM,这被普遍认为是命令行脚本化的雏形。从那时起,人类与计算机的交互就沿着两条主线演进:
在普通人眼里,GUI 是“先进”的代名词,CLI 是“黑底白字”的极客玩具。但从业者心里清楚:CLI 从来不是被 GUI 打败,而是被 GUI 在“大众市场”中暂时替代。在服务器、嵌入式、DevOps、科学计算等专业领域,命令行始终是不可或缺的基础设施。
关键结论:CLI 的本质不是“一种交互形式”,而是“操作系统能力的最小、最稳定、最可编程接口”。
年份 | 里程碑 | 意义 |
|---|---|---|
1963 | RUNCOM 诞生 | 命令行脚本化的雏形 |
1971 | UNIX V6 Shell | 首个 UNIX Shell,奠定交互式命令执行基础 |
1977 | Bourne Shell (sh) | 引入结构化脚本与控制流 |
1983 | Korn Shell (ksh) | 更强大的脚本与性能 |
1989 | Bash 发布 | 开源世界事实标准,沿用至今 |
这一时期,CLI 是唯一的“操作系统界面”。用户通过终端输入命令,操作系统通过文本返回结果。UNIX 哲学——“一个程序只做一件事,并把这件事做好”——使得 grep、awk、sed、tar、make 等工具通过管道组合,完成复杂任务。
1984 年 Apple Macintosh 推出图形界面,1995 年 Windows 95 普及,普通家庭和企业用户第一次能用鼠标完成文件管理、上网、办公。命令行被贴上“难学、不直观”的标签,进入长达十余年的相对衰退期。
但这一时期有两个关键事件保住了 CLI 的火种:
年份 | 工具 | 意义 |
|---|---|---|
2009 | WP-CLI / Heroku CLI | 自动化部署与网站运维的 CLI 先驱 |
2013 | Docker CLI | 容器化革命的核心入口 |
2014 | Terraform / AWS CLI | 基础设施即代码的标配 |
2015 | kubectl | Kubernetes 集群管理的事实标准 |
2016 | GitHub CLI (gh) | 代码协作全面进入终端 |
2020 | GitHub CLI 1.0 | 开源工作流终端化完成 |
DevOps 和云原生时代的到来,让开发者重新发现:在自动化、CI/CD、远程服务器、容器编排等场景,鼠标点击无法规模化,而命令行可以脚本化、版本化、流水线化。Rust 重写的新一代 CLI 工具(如 ripgrep、fd、bat、exa、zoxide)更是让 CLI 体验焕然一新。

说明:横轴为年份,纵轴为“CLI 影响力指数”(相对值,综合开发者使用率、工具数量、社区关注度等维度)。曲线显示 CLI 经历了 1960s-1980s 的崛起、1984-2000 的 GUI 衰退、2009-2020 的 DevOps 复兴,以及 2024 年后 AI Agent 时代的新一轮爆发。
2024 年被称为“AI Coding 元年”,2025 年则被称为“终端复兴年”。Anthropic、Google、OpenAI 等公司同时推出基于终端的 AI 编程工具。这不是巧合,而是技术架构、开发者体验、企业需求共同决定的必然结果。
LLM 最擅长处理的是文本。而 CLI 的核心交互形式恰恰是文本命令 + 文本输出。这种同构性让 LLM 可以:
--help 文档;--json 获得结构化输出,避免 GUI 截图 OCR 的脆弱性。对比之下,GUI 是像素、坐标、事件驱动的,对 Agent 极不友好。让 LLM 点击按钮,本质上是“把语言模型当计算机视觉模型用”,既浪费 token 又容易出错。
AI Agent 的核心能力不是“聊天”,而是“执行”:分析项目结构、运行测试、调用 API、部署服务、修复 bug。CLI 工具直接运行在操作系统层面,拥有:
IDE 插件必须通过编辑器 API 间接访问这些能力,而 CLI 是“无中介”的。
UNIX 哲学中的管道(|)让多个小程序组合成复杂工作流。AI Agent 可以同样方式调用多个 CLI 工具:
# 示例:用一条管道完成“下载 → 清洗 → 分析 → 可视化”
curl -s https://example.com/data.csv | \
csvlens | \
python3 analyze.py | \
jq '.summary' | \
tee report.json这种组合能力对 Agent 至关重要:它不需要为每个软件学习一套新 API,只需遵循“输入文本、输出文本”的约定。
GUI 自动化(RPA)依赖屏幕坐标、窗口句柄、点击时序,任何界面变化都会让脚本崩溃。CLI 则通过命令、参数、环境变量提供确定性的接口:同样的命令,在同样的环境下,总是产生同样的结果。这对企业级 Agent 的可靠性至关重要。

说明:从调用速度、确定性、可组合性、Agent 友好度、调试体验、错误恢复六个维度评分。CLI 在所有维度均显著优于 GUI 自动化(RPA),尤其在确定性和可组合性上差距巨大。
为了更具体地说明 CLI 在 AI Agent 场景中的价值,下面构造一个贴近真实业务的端到端案例:
一家电商公司的运营同学需要每周一早会前拿到一份“上周热销商品分析报告”。报告需要包含:
如果让 Agent 通过 GUI 操作:
# 1. 下载数据(BI 提供 REST API)
curl -H "Authorization: Bearer $BI_TOKEN" \
"https://bi.xxxxxx.com/api/sales?start=2026-06-25&end=2026-07-01" \
-o raw_sales.csv
# 2. 数据清洗与聚合(Python 脚本)
python3 - <<'PY'
import pandas as pd
df = pd.read_csv('raw_sales.csv')
df = df[df['status'] == 'completed'] # 去除异常订单
report = df.groupby('category').agg(
total_sales=('amount', 'sum'),
total_orders=('order_id', 'count'),
avg_order_value=('amount', 'mean')
).reset_index()
report.to_json('report.json', orient='records', force_ascii=False)
PY
# 3. 生成 Markdown 报告(供人类阅读)
cat > weekly_report.md <<'EOF'
# 上周热销商品分析报告
生成时间:$(date)
EOF
python3 - <<'PY'
import json
with open('report.json') as f: data = json.load(f)
print('| 品类 | 销售额 | 订单数 | 客单价 |')
print('|------|--------|--------|--------|')
for r in data:
print(f"| {r['category']} | ¥{r['total_sales']:.2f} | {r['total_orders']} | ¥{r['avg_order_value']:.2f} |")
PY >> weekly_report.md
# 4. 转换为 PDF(LibreOffice headless)
soffice --headless --convert-to pdf weekly_report.md --outdir ./
# 5. 发送邮件(mail CLI 或 sendmail)
mail -s "上周热销商品分析报告" -A weekly_report.pdf \
ops-team@company.com < weekly_report.md2024-2026 年,AI 与 CLI 的融合进入快车道。下表梳理了主要工具及其定位:
工具 | 发布/热门时间 | 定位 | 核心能力 |
|---|---|---|---|
Aider | 2023 | 开源终端编程助手 | 多文件编辑、Git 集成、多模型支持 |
Cline | 2024 | VS Code 插件 + 终端能力 | 自动执行终端命令、浏览器访问 |
Claude Code | 2024.6 | Anthropic 官方终端 Agent | 读取/编辑代码库、运行测试、多步骤任务 |
GitHub Copilot CLI | 2024 | 命令补全与解释 | 自然语言转 shell 命令 |
Amazon Q CLI | 2024 | 企业级 AWS 终端助手 | 代码生成、故障排查 |
Gemini CLI | 2025.2 | Google 终端编程 Agent | 100 万 token 上下文、免费额度高 |
OpenAI Codex CLI | 2025.4 | OpenAI 官方终端 Agent | 云端/本地模型、沙箱执行 |
CLI-Anything | 2026.2 | 任意软件转 Agent CLI | 全自动生成生产级 CLI 接口 |

说明:气泡大小代表相对影响力(综合 GitHub Stars、社区讨论度、企业采用度),横轴为发布时间。2024-2025 年是 CLI 工具集中爆发期,2026 年 CLI-Anything 进一步把“CLI 化”能力泛化到任意软件。
CLI-Anything 由中国香港香港大学(HKU)数据科学实验室(HKUDS)开发,2026 年开源。它的核心命题非常直接:
今天的软件服务于人类,明天的用户将是 AI Agent。
现实是:全球绝大多数软件(GIMP、Blender、Audacity、LibreOffice、Zoom 等)是为人类 GUI 交互设计的,它们没有为 Agent 提供结构化接口。过去让 Agent 控制这些软件,主要靠脆弱的 RPA(截图、点击、模拟键盘),既不稳定也不安全。
CLI-Anything 的解决方案是:通过全自动 7 阶段流水线,为任何有代码库的软件生成生产级 CLI 接口。
原则 | 说明 |
|---|---|
真实软件集成 | 不重新实现功能,而是直接调用目标软件后端(如 LibreOffice 生成真实 PDF、Blender 渲染真实 3D 场景) |
结构化与可组合 | 每个命令都支持 |
自描述 | 通过 |
生产级验证 | 每个生成的 CLI 都包含单元测试、E2E 测试和真实后端验证 |
零配置安装 | 生成标准 Python 包,通过 |
阶段 | 名称 | 功能 |
|---|---|---|
Phase 1 | Analyze(分析) | 扫描源代码,将 GUI 操作映射到 API |
Phase 2 | Design(设计) | 架构命令组、状态模型、输出格式 |
Phase 3 | Implement(实现) | 构建带 REPL、JSON 输出、撤销/重做的 Click CLI |
Phase 4 | Plan Tests(规划测试) | 创建 TEST.md,包含单元 + E2E 测试计划 |
Phase 5 | Write Tests(编写测试) | 实现完整测试套件 |
Phase 6 | Document(文档化) | 更新 TEST.md,生成 SKILL.md |
Phase 7 | Publish(发布) | 创建 setup.py,安装到 PATH |
额外提供
refine命令:在初始构建后对 CLI 进行差距分析,扩展覆盖范围。
# 添加插件市场
/plugin marketplace add HKUDS/CLI-Anything
# 安装插件
/plugin install cli-anything# 指向 LibreOffice 代码库或本地目录,执行 7 阶段流水线
/cli-anything ./libreofficeCLI-Anything 会自动完成:代码分析、命令设计、CLI 实现、测试规划、测试编写、文档生成、打包发布。生成后的包位于 libreoffice/agent-harness/ 目录下。
cd libreoffice/agent-harness
pip install -e .安装后,即可在 PATH 中使用 cli-anything-libreoffice 命令。
# 4.1 创建新的 Writer 文档
cli-anything-libreoffice document new -o report.json --type writer
# 4.2 添加一级标题
cli-anything-libreoffice --project report.json writer add-heading \
-t "2026 年 Q1 产品总结" --level 1
# 4.3 添加正文段落
cli-anything-libreoffice --project report.json writer add-paragraph \
-t "本季度用户增长 35%,核心功能完成率 92%。"
# 4.4 插入表格
cli-anything-libreoffice --project report.json writer add-table \
--rows 4 --cols 3
# 4.5 导出为真实 PDF(调用 LibreOffice headless 后端)
cli-anything-libreoffice --project report.json export render output.pdf \
-p pdf --overwritecli-anything-libreoffice --json document info --project report.json输出示例:
{
"name": "2026 年 Q1 产品总结",
"type": "writer",
"pages": 1,
"elements": 3,
"modified": true
}$ cli-anything-libreoffice
╔══════════════════════════════════════╗
║ cli-anything-libreoffice v1.0.0 ║
║ LibreOffice CLI for AI Agents ║
╚══════════════════════════════════════╝
libreoffice> document new -o report.json --type writer
libreoffice[report]> writer add-heading -t "总结" --level 1
libreoffice[report]> exit--json 程序化调用;截至目前,CLI-Anything 已为 50 多款主流软件生成 CLI 接口,覆盖创意媒体、AI 平台、数据分析、办公套件、开发工具等多个领域。

说明:横轴为测试数量,纵轴为不同软件。测试总数 2,461 个,包含 1,732 个单元测试、579 个端到端测试、19 个 Node.js 测试和 150 个其他测试,100% 通过率。这证明 CLI-Anything 生成的不是玩具 demo,而是生产级接口。
领域 | 代表软件 |
|---|---|
创意媒体 | Blender、GIMP、Inkscape、Audacity、Kdenlive、OBS Studio |
AI / ML | ComfyUI、Ollama、Stable Diffusion WebUI、InvokeAI |
数据分析 | JupyterLab、DBeaver、Metabase、Apache Superset |
办公套件 | LibreOffice、Joplin、Mubu、Calibre、Zotero |
开发工具 | Jenkins、Gitea、Portainer、SonarQube、ArgoCD |
企业协作 | Zoom、Mattermost、NextCloud、GitLab |
回顾 CLI 的历史,它经历了三次关键跃迁:
而 CLI-Anything 的出现,意味着 CLI 不再是少数工具的专属,而是可以泛化到任何软件的能力层。未来的软件生态可能变成这样:
对于开发者而言,这意味着:会写命令行、会设计 CLI 接口、会让软件可被 Agent 调用,将成为新的核心竞争力。CLI 不是“复古”,而是“未来基础设施的通用协议”。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。