找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2219

积分

0

好友

297

主题
发表于 2 小时前 | 查看: 2| 回复: 0

你有没有遇到过这种情况:让AI帮你做个视频剪辑,或者批量处理一堆图片,结果它的操作方式是:截屏,识别按钮位置,模拟鼠标点击。这种方式的脆弱性显而易见——稍微换个分辨率就崩了,窗口弹出来挡住了关键按钮也崩了,软件更新了界面同样会崩。

之前尝试用各种 AI Agent 操控桌面软件时,最大的痛点就是GUI自动化太脆了。截图识别虽然能用,但那种体验实在是一言难尽。最近,香港大学数据智能实验室(HKUDS)在GitHub上开源了一个名为 CLI-Anything 的项目,提供了一种截然不同的思路。它的口号是“Making ALL Software Agent-Native”,翻译过来就是:通过一条命令,将任何软件变成AI能直接操控的命令行工具。这个项目的热度增长迅猛,短短时间内就从几千星飙升至近万星,值得我们深入了解一下。

CLI-Anything GitHub仓库截图

CLI-Anything 是什么?

简单来说,CLI-Anything 是一个自动化流水线工具。它要解决的核心问题,就是让AI Agent不通过脆弱的GUI截图点击,而是通过稳定、结构化的命令行(CLI)来直接操控桌面软件。

它的工作流程非常直接:你将任何一个软件的源代码路径提供给CLI-Anything,它会自动运行一个七阶段的流水线,最终生成一套完整的、专为该软件定制的命令行工具集。这套生成的CLI具备几个关键特性:

  • 结构化JSON输出:每条命令都支持 --json 参数,AI可以直接解析返回的结构化数据,无需再对截图进行OCR识别和猜测。
  • 双模式运行:支持REPL(交互式)模式,像聊天一样逐步操作;也支持子命令模式,一条指令直接完成复杂任务。
  • 状态管理:内置撤销/重做功能,项目状态持久化,操作可回退。
  • 真实文件生成:它并非模拟行为,而是真实调用底层软件。例如,用LibreOffice生成PDF,用Blender渲染3D场景,用Audacity处理音频。

核心技术:七阶段全自动流水线

这是整个项目最核心的技术部分。当你将一个软件的源代码丢给CLI-Anything后,它会自动执行以下七个步骤:

  1. 代码库分析:分析软件架构和数据模型。
  2. CLI设计:将GUI操作逻辑映射成命令行命令结构。
  3. 实现:编写核心模块,处理状态管理等。
  4. 测试规划:设计单元测试。
  5. 测试实现:编写并执行测试。
  6. 测试文档化:生成测试文档。
  7. 发布:打包并准备发布,可通过 pip install 直接安装使用。

整个过程是全自动的。你只需要输入一条命令,例如:

/cli-anything ./gimp

等待流水线执行完毕,你就拥有了一个功能完整的GIMP命令行工具。这个思路相当“暴力”——它直接从源代码层面理解软件能做什么,而不是通过API或界面模拟。

CLI-Anything七阶段自动化流水线示意图

已验证的覆盖范围与可靠性

目前,该项目已成功为11款主流的开源桌面软件生成了可用的CLI,涵盖了图像编辑、3D建模、音视频处理、办公套件等多个领域。

已支持的软件及测试数量表格

更令人信服的是其测试数据:总计 1,508个测试(包含1,011个单元测试和425个端到端测试),实现了100%的通过率。这强有力地证明了该项目并非“玩具”或概念验证,而是经过了严格测试、真正可用的生产级工具。生成的CLI功能也相当全面,例如LibreOffice CLI可以操控Writer、Calc、Impress,OBS Studio CLI能控制流媒体场景。

安装与使用指南

对于 Claude Code 用户,这是最简便的体验方式:

方式一:通过插件市场安装(推荐)

  1. 添加市场源:
    # Add the CLI-Anything marketplace
    /plugin marketplace add HKUDS/CLI-Anything
  2. 安装插件:
    # Install the cli-anything plugin from the marketplace
    /plugin install cli-anything
  3. 使用命令构建CLI:

    # /cli-anything:cli-anything <software-path-or-repo>
    # Generate a complete CLI for GIMP (all 7 phases)
    /cli-anything:cli-anything ./gimp
    
    # Note: If your Claude Code is under 2.x, use "/cli-anything" instead.
  4. 可选:对生成的CLI进行完善或改进:

    # Broad refinement — agent analyzes gaps across all capabilities
    /cli-anything:refine ./gimp
    
    # Focused refinement — target a specific functionality area
    /cli-anything:refine ./gimp "I want more CLIs on image batch processing and filters"

方式二:手动安装插件

git clone https://github.com/HKUDS/CLI-Anything.git
cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything

然后在Claude Code中执行 /reload-plugins 即可。

使用生成的CLI
无论采用哪种安装方式,生成CLI后,进入对应目录安装即可使用:

# Install any generated CLI
cd <software>/agent-harness
pip install -e .

# Verify
which cli-anything-<software>

# Use
cli-anything-<software> --help
cli-anything-<software>                    # enters REPL
cli-anything-<software> --json <command>   # JSON output for agents

运行测试以确保一切正常:

# Run tests for a specific CLI
cd <software>/agent-harness
python3 -m pytest cli_anything/<software>/tests/ -v

# Force-installed mode (recommended for validation)
CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything/<software>/tests/ -v -s

CLI模式为何优于传统截图模式?

我们来理清两者的本质区别:

  • 传统截图流(GUI自动化):AI截屏 -> OCR识别界面元素 -> 计算坐标 -> 模拟鼠标点击。问题:高度依赖屏幕分辨率、窗口位置、软件界面版本,任何一个因素变化都可能导致流程崩溃。
  • CLI流(CLI-Anything):AI发送结构化命令 -> CLI工具调用软件底层功能 -> 返回结构化JSON结果。优势:完全不依赖图形界面,不怕分辨率或UI改动,输出可直接被程序解析,稳定性和可靠性大幅提升。

CLI-Anything功能场景说明图

例如,使用 cli-anything-blender --json scene list 命令,返回的是清晰的JSON格式场景列表,AI Agent可以直接使用。这远比让AI去分析一张Blender的截图并猜测有哪些场景要高效和准确得多。--json 参数的设计非常巧妙,实现了人机两用:人类用户看的是格式化的表格,机器处理的是结构化数据。

项目的局限性

在肯定其价值的同时,也需了解当前的边界:

  1. 需要本地安装真实软件:CLI-Anything不是模拟器。要操控Blender,本地必须安装Blender。这是其“零妥协”设计哲学的一部分,确保功能的真实性。
  2. 依赖软件源代码:目前主要针对开源软件。像Photoshop、Final Cut Pro这类闭源商业软件,由于无法获取源代码,暂时无法使用此方案。
  3. 并非万能:对于一些结构特别简单或特殊的软件,其七阶段流水线可能无法完美适配。项目Issue区显示,曾有用户尝试包装gedit失败。目前成功案例都是代码结构相对规范的大型开源软件。官方也建议,首次生成后可以运行 /refine 命令进行多次迭代,以提升功能覆盖率。
  4. 处于快速成长期:作为一个近万星的热门 开源项目,它仍在快速迭代中。这意味着API可能发生变化,文档可能不完善,使用者需要有一定的踩坑心理准备。

意义与展望

CLI-Anything 代表了一个重要的方向转变:AI Agent与软件的交互方式,正从脆弱的GUI自动化转向稳定、原生的CLI交互。

此前,让AI操控软件要么依赖专门开发的API(极少软件提供),要么采用GUI自动化。CLI-Anything 开辟了 第三条道路:自动将软件“翻译”成CLI。这对于AI Agent生态意义重大,理论上,任何开源软件都可以通过这种方式无缝接入AI的工作流,而无需软件开发者做任何专门适配。

想象一下这个场景:AI Agent通过一条命令让Blender渲染场景,再一条命令让Stable Diffusion生成贴图,接着用Inkscape处理矢量元素,最后用LibreOffice生成项目报告。整个过程没有一次截图点击,完全基于结构化命令和数据交互,稳定且高效。这才是Agent操控软件应有的形态。

总结与建议

  • Claude Code用户:强烈建议直接尝试。安装简单,可以快速体验AI通过命令行操控Blender或GIMP的感觉,成本极低。
  • 有批量自动化需求者:如果你经常需要批量处理图片、视频或文档,这个工具提供的CLI化思路比传统截图自动化方案稳定得多,值得深入研究。
  • 观望者:可以持续关注这个项目。随着生态的成熟和更多软件的适配,其应用场景会越来越广泛。

让AI通过截图操控软件,本质上是用一种笨拙的方式(看屏幕猜按钮)去完成本该高效的任务。直接发送精确的指令才是更合理的路径。CLI-Anything 可能不是最终的完美形态,但它无疑指向了正确的方向。你对AI操控桌面软件有哪些想法或踩坑经历?欢迎在技术社区进行交流。

项目地址https://github.com/HKUDS/CLI-Anything

本文介绍的 CLI-Anything 是AI Agent工具链领域的一个有趣实践。对于此类前沿技术动态和开源项目解读,云栈社区 的开发者们也在持续关注和讨论。如果你对人工智能、自动化以及更多开源实战内容感兴趣,不妨来社区一起交流探讨。




上一篇:从OpenClaw到Paperclip:AI Agent团队协作与公司级编排平台解析
下一篇:Nitro-Pandas 0.1.5:兼容pandas语法,让百万行数据处理快5-10倍
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-14 08:09 , Processed in 0.444276 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表