【CLI-Anything 】让所有软件都能被AI Agent原生调用

CLI-Anything

一、项目概述

CLI-Anything 是由香港大学数据科学实验室(HKUDS)开发的开源项目,核心目标是让所有软件都能被AI Agent原生调用。项目口号:“Today’s Software Serves Humans 👨‍💻. Tomorrow’s Users will be Agents 🤖”

项目指标数值
Stars1.1k
Forks110
Watchers7
主要语言Python (99.7%)
测试通过率100% (1,436 tests)

二、核心问题与解决方案

2.1 现有痛点
痛点具体表现
AI无法使用真实工具现有方案要么是脆弱的UI自动化,要么是功能阉割的重新实现
UI自动化不可靠截图、点击、RPA等方式容易崩溃
Agent需要结构化数据缺乏标准化的输出格式
定制集成成本高每个软件都需要单独开发接口
原型与生产差距大缺乏真实软件验证
2.2 CLI-Anything的解决思路

核心洞察:CLI(命令行界面)是人类和AI Agent的通用接口

  • ✅ 结构化且可组合 — 文本命令匹配LLM格式,可链式组合复杂工作流
  • ✅ 轻量且通用 — 最小开销,跨系统无依赖
  • ✅ 自描述 — --help 标志提供自动文档,Agent可自动发现
  • ✅ 已验证成功 — Claude Code每天通过CLI运行数千个真实工作流
  • ✅ Agent优先设计 — 结构化JSON输出消除解析复杂性
  • ✅ 确定且可靠 — 一致结果实现可预测的Agent行为

三、技术架构

3.1 七阶段全自动流水线
/cli-anything <software-path-or-repo> ↓ 1. 🔍 Analyze(分析)— 扫描源代码,映射GUI动作到API 2. 📐 Design(设计)— 架构命令组、状态模型、输出格式 3. 🔨 Implement(实现)— 构建Click CLI,含REPL、JSON输出、撤销/重做 4. 📋 Plan Tests(规划测试)— 创建TEST.md,含单元测试+E2E测试计划 5. 🧪 Write Tests(编写测试)— 实现全面测试套件 6. 📝 Document(文档)— 更新TEST.md结果 7. 📦 Publish(发布)— 创建setup.py,安装到PATH 
3.2 核心设计原则
原则说明
真实软件集成CLI必须调用实际应用进行渲染,不是替代而是封装
灵活交互模式有状态REPL + 子命令接口,裸命令进入REPL模式
一致用户体验统一REPL界面(repl_skin.py),品牌横幅、样式提示、命令历史
Agent原生设计内置--json标志,标准--helpwhich命令发现能力
零妥协依赖真实软件是硬性要求,缺失时测试失败而非跳过

四、已验证的9个生产级CLI

软件领域CLI命令后端技术测试数
🎨 GIMP图像编辑cli-anything-gimpPillow + GEGL/Script-Fu107
🧊 Blender3D建模与渲染cli-anything-blenderbpy (Python脚本)208
✏️ Inkscape矢量图形cli-anything-inkscape直接SVG/XML操作202
🎵 Audacity音频制作cli-anything-audacityPython wave + sox161
📄 LibreOffice办公套件cli-anything-libreofficeODF生成 + 无头LO158
📹 OBS Studio直播与录制cli-anything-obs-studioJSON场景 + obs-websocket153
🎞️ Kdenlive视频编辑cli-anything-kdenliveMLT XML + melt渲染器155
🎬 Shotcut视频编辑cli-anything-shotcut直接MLT XML + melt154
📐 Draw.io图表绘制cli-anything-drawiomxGraph XML + draw.io CLI138
总计1,436

测试构成:1,011单元测试 + 425 E2E测试,100%通过率


五、使用方式

5.1 快速开始(Claude Code插件)
# 添加市场 /plugin marketplace add HKUDS/CLI-Anything # 安装插件 /plugin install cli-anything # 一键生成CLI(以GIMP为例) /cli-anything ./gimp 
5.2 手动安装
git clone https://github.com/HKUDS/CLI-Anything.git cp-r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything /reload-plugins 
5.3 使用生成的CLI
# 安装到PATHcd gimp/agent-harness && pip install-e.# 查看帮助 cli-anything-gimp --help# 创建项目 cli-anything-gimp project new --width1920--height1080-o poster.json # JSON模式(供Agent使用) cli-anything-gimp --json layer add-n"Background"--type solid --color"#1a1a2e"# 进入交互式REPL cli-anything-gimp 

六、插件命令集

命令功能
/cli-anything <path-or-repo>完整构建CLI(全部7阶段)
/cli-anything:refine <path> [focus]优化现有CLI,扩展覆盖范围
/cli-anything:test <path-or-repo>运行测试并更新TEST.md
/cli-anything:validate <path-or-repo>按HARNESS.md标准验证

七、项目结构

cli-anything/ ├── 📄 README.md / README_CN.md # 中英文档 ├── 📁 assets/ # 图标、演示图 ├── 🔌 cli-anything-plugin/ # Claude Code插件 │ ├── HARNESS.md # 方法论SOP(核心文档) │ ├── QUICKSTART.md # 5分钟快速开始 │ ├── PUBLISHING.md # 发布指南 │ ├── repl_skin.py # 统一REPL界面 │ └── commands/ # 插件命令定义 │ ├── cli-anything.md │ ├── refine.md │ ├── test.md │ └── validate.md ├── 🎨 gimp/agent-harness/ ├── 🧊 blender/agent-harness/ ├── ✏️ inkscape/agent-harness/ ├── 🎵 audacity/agent-harness/ ├── 📄 libreoffice/agent-harness/ ├── 📹 obs-studio/agent-harness/ ├── 🎞️ kdenlive/agent-harness/ ├── 🎬 shotcut/agent-harness/ └── 📐 drawio/agent-harness/ 

每个agent-harness/包含:

  • 可安装的Python包(cli_anything.<software>/
  • Click CLI实现
  • 核心模块
  • 工具(含repl_skin.py和后端包装器)
  • 全面测试

八、关键方法论:HARNESS.md

HARNESS.md是项目的标准操作程序(SOP),编码了通过自动化生成流程提炼的成熟模式。

关键经验教训
教训详细说明
使用真实软件CLI必须调用实际应用渲染,不能用Pillow替代GIMP,不能用自定义渲染器替代Blender
渲染差距问题GUI应用在渲染时才应用效果,若CLI操作项目文件但使用简单导出工具,效果会被静默丢弃
滤镜转换MLT→ffmpeg等格式映射时注意:重复滤镜合并、交错流排序、参数空间差异、不可映射效果
时间码精度非整数帧率(29.97fps)导致累积舍入,用round()而非int(),显示用整数运算,测试容差±1帧
输出验证不能因退出码0就信任导出成功,需验证:magic bytes、ZIP/OOXML结构、像素分析、音频RMS电平、时长检查

九、应用场景分类

类别如何Agent化典型示例
📂 GitHub仓库自动CLI生成将任何开源项目转为Agent可控工具VSCodium, WordPress, Calibre, Zotero, Joplin
🤖 AI/ML平台结构化命令自动化模型训练、推理流程、超参调优Stable Diffusion, ComfyUI, InvokeAI, Fooocus
📊 数据分析程序化数据处理、可视化、统计分析工作流JupyterLab, Superset, Metabase, DBeaver
💻 开发工具命令接口简化代码编辑、构建、测试、部署Jenkins, Gitea, Portainer, SonarQube
🎨 创意媒体程序化控制内容创作、编辑、渲染工作流Blender, GIMP, OBS, Krita, Kdenlive
🔬 科学计算自动化研究工作流、仿真、复杂计算ImageJ, FreeCAD, QGIS, ParaView, KiCad
🏢 企业办公将业务应用和生产力工具转为Agent可访问系统NextCloud, GitLab, Grafana, LibreOffice, ERPNext
📐 图表可视化程序化创建和操作图表、流程图、架构图Draw.io, Mermaid, PlantUML, Excalidraw
✨ AI内容生成通过AI云API生成专业交付物(幻灯片、文档、图表)AnyGen, Gamma, Beautiful.ai, Tome

十、愿景与路线图

10.1 核心愿景
  • 🌐 通用访问 — 每个软件都通过结构化CLI即时Agent可控
  • 🔗 无缝集成 — Agent无需API、GUI、重建或复杂包装器即可控制任何应用
  • 🚀 未来就绪生态 — 一条命令将人类设计的软件转为Agent原生工具
10.2 路线图
  • 支持更多应用类别(CAD、DAW、IDE、EDA、科学工具)
  • Agent任务完成率基准测试套件
  • 社区贡献的内部/定制软件CLI
  • 与Claude Code之外的更多Agent框架集成
  • 支持将闭源软件和Web服务的API打包为CLI
  • 生成SKILL.md供Agent技能发现和编排

十一、核心洞察总结

  1. CLI是Agent时代的通用语言 — 不是替代GUI,而是为Agent提供结构化接口
  2. 真实软件调用是关键 — 生成有效项目文件→调用真实后端,拒绝玩具实现
  3. 测试即文档 — 1,436个测试不仅是质量保证,更是功能规格说明
  4. 方法论可复现 — HARNESS.md将经验编码为可执行的标准
  5. 插件化降低门槛 — 通过Claude Code插件市场实现一键CLI生成

Read more

Qt与Web混合编程:CEF与QCefView深度解析

Qt与Web混合编程:CEF与QCefView深度解析

Qt与Web混合编程:CEF与QCefView深度解析 * 1. 引言:现代GUI开发的融合趋势 * 2. Qt与Web集成方案对比 * 3. CEF核心架构解析 * 4. QCefView:Qt与CEF的桥梁 * 5. 实战案例:智能家居控制面板 * 6. 性能优化策略 * 7. 调试技巧大全 * 8. 安全加固方案 * 9. 未来展望:WebComponent集成 * 10. 结语 1. 引言:现代GUI开发的融合趋势 在当今的桌面应用开发领域,本地GUI框架与Web技术的融合已成为不可逆转的趋势。Qt作为成熟的跨平台C++框架,与Web技术的结合为开发者提供了前所未有的灵活性: * 本地性能 + Web动态性 = 最佳用户体验 * 快速迭代的Web前端 + 稳定可靠的本地后端 * 跨平台一致性 + 现代UI效果 35%25%20%20%混合应用优势分布开发效率UI表现力跨平台性性能平衡 2. Qt与Web集成方案对比 方案优点缺点适用场景Qt WebEngine官方支持,

如何利用简单的浏览器插件Web Scraper爬取知乎评论数据

如何利用简单的浏览器插件Web Scraper爬取知乎评论数据

一、简单介绍: Web Scraper 的优点就是对新手友好,在最初抓取数据时,把底层的编程知识和网页知识都屏蔽了,可以非常快的入门,只需要鼠标点选几下,几分钟就可以搭建一个自定义的爬虫。 我在过去的半年里,写了很多篇关于 Web Scraper 的教程,本文类似于一篇导航文章,把爬虫的注意要点和我的教程连接起来。最快一个小时,最多一个下午,就可以掌握 Web Scraper 的使用,轻松应对日常生活中的数据爬取需求。 像这样的网页数据,想要通过网页爬虫的方式获取数据,可以下载web scraper进行爬虫 这是常见的网页类型: 1.单页 单页是最常见的网页类型。 我们日常阅读的文章,推文的详情页都可以归于这种类型。作为网页里最简单最常见的类型,Web Scraper 教程里就拿豆瓣电影作为案例,入门 Web Scraper 的基础使用。 2.分页列表 分页列表也是非常常见的网页类型。 互联网的资源可以说是无限的,当我们访问一个网站时,不可能一次性把所有的资源都加载到浏览器里。现在的主流做法是先加载一部分数据,随着用户的交互操作(

调用大模型API打造AI 智能客服系统实践教程

调用大模型API打造AI 智能客服系统实践教程

1.前言 在用户与人工客服的沟通中,等待时间长、需求难满足等问题频发,企业面临用户流失风险,用户渴望快速精准的答案,企业需要“开源节流”、“降本增效”。对此,利用 AI 大模型打造智能客服成为主流解决方案。本次调用大模型 API,实操构建一个具备知识库的 AI 智能客服系统,有效化解沟通难题。 2.智能客服系统展示 不同以往,这次我选择把智能客服系统页面展示放前头。先让大家伙直观看到系统界面和操作流程,一秒 get 系统全貌,再讲干货内容。要是我先讲一堆理论,大家伙怕是早不耐烦了吧。把页面展示放前面,也是为我后续介绍API调用、知识库、实际开发操作这些干货内容时做铺垫,帮助大家理解理论和代码。 下面是智能客服系统运行后的界面,这个智能客服是支持知识库的上传的。 实际对话界面如下 隔了一段时间再与智能客服进行对话,可以看见智能客服系统能保留我们的历史对话记录,并正常给我们推荐符合要求的手机商品,响应快速。 3.API调用 3.1.大模型API介绍 大模型API是大模型对外提供服务的接口。通过API,

15. Web可访问性最佳实践:让每个用户都能平等访问

15. Web可访问性最佳实践:让每个用户都能平等访问 引言 Web 可访问性是前端开发的重要组成部分,它确保所有用户,包括残障人士,都能平等地访问和使用网站。作为一名把代码当散文写的 UI 匠人,我始终认为:好的设计不仅要美观,更要包容。就像一首好的音乐,不仅要动听,更要让所有人都能欣赏。Web 可访问性,就是为了让这种包容成为现实。 什么是 Web 可访问性? Web 可访问性(Web Accessibility)是指网站、工具和技术能够被所有人使用的程度,无论他们是否有残疾。这包括: * 视觉障碍(如失明、低视力) * 听觉障碍(如耳聋) * 运动障碍(如无法使用鼠标) * 认知障碍(如学习困难) 可访问性的重要性 1. 法律要求:许多国家和地区都有关于 Web 可访问性的法律法规 2. 扩大受众:提高可访问性可以让更多人使用你的网站