夜雨聆风学习资料网

ARTICLE · 1248187

CLI-Anything:让 AI Agent 操作电脑软件

CLI-Anything:让 AI Agent 操作电脑软件

前面写过让 AI 看着屏幕、自己点鼠标的 computer-use 工具。它很直观,但真拿去批量干活,很快会遇到一个问题:按钮挪了、窗口缩放了、弹窗挡住了,AI 就可能点错。

人类喜欢图形界面,Agent 更喜欢另一种东西——命令行。输入和输出结构固定,成功还是失败说得清,也不用每一步都截图、识图、猜坐标。

前不久GitHub Python Trending上很火的 HKUDS/CLI-Anything,做的就是这层翻译:给原本面向人类的桌面软件补一套 Agent 能调用的 CLI。 GIMP、Blender、LibreOffice、FreeCAD、ComfyUI、Audacity、QGIS、OBS、Inkscape、Kdenlive……都已经能在它的 CLI-Hub 里找到对应 harness。

CLI-Anything 主仓库是 Apache 2.0;cli-anything-hub 的 PyPI 包元数据标成 MIT,两者目前并不完全一致。工具层在本机运行,而且它自己不需要显卡;目标软件和各自插件则仍按各自许可计算。

为什么 AI 点鼠标,不如让软件“说命令行”

假设你要让 AI 在 GIMP 里把 100 张产品图统一裁成方形、去背景、缩放到 1200×1200,再导出 WebP。

纯视觉路线通常是:

  1. 截屏;
  2. 找菜单和按钮;
  3. 移动鼠标;
  4. 点开对话框;
  5. OCR 读取参数;
  6. 输入数字;
  7. 再截屏确认。

不仅慢,而且任何一个弹窗、主题、语言或分辨率变化都可能让流程跑偏。

CLI 路线则更像:

gimp crop ... --width 1200 --height 1200gimp remove-background ...gimp export ... --format webp

Agent 调用命令,拿到结构化结果,知道哪个文件成功、哪个失败。多步任务还能串起来、写进脚本、放进定时任务,也更容易重跑和审计。

CLI-Anything 把这层适配叫 agent harness。它不是重新发明 GIMP 或 Blender,而是站在原软件前面,把常用能力包装成一致、可发现、适合模型调用的命令。

先看看现在有什么

项目提供了一个 CLI-Hub,类似“给 Agent 用的命令行应用商店”。先安装:

pip install cli-anything-hub

浏览和搜索现有工具:

cli-hub listcli-hub search imagecli-hub search cadcli-hub search office

查看某个 harness 的信息:

cli-hub info gimpcli-hub info blendercli-hub info libreoffice

安装并启动一个,例如 GIMP:

cli-hub info gimp       # 先看来源、安装命令和依赖cli-hub install gimpcli-hub launch gimp

这一步不要直接交给 Agent 无人值守执行。CLI-Hub 的注册表里既有 pip / Git 安装,也可能有调用 shell 的第三方安装命令,目前没有覆盖所有条目的签名和校验值。**先 cli-hub info <name> 看清 Install cmd 和来源,再决定是否安装。**

CLI-Hub 默认还会发送匿名分析事件,包括随机 ID、平台、执行了哪类 Hub 命令,以及安装 / 启动了哪个 CLI。想把这层也关掉,启动前设置:

export CLI_HUB_NO_ANALYTICS=1

Windows PowerShell 对应设置环境变量即可。

这里有个容易忽略的前提:harness 不是原软件本体。 想控制 GIMP,电脑上仍要有 GIMP;想控制 Blender、LibreOffice、FreeCAD,也得先装好对应应用。CLI-Anything 提供的是“Agent 到软件”的桥,不会把几十个桌面应用一起打包进来。

如果你用的是支持 Agent Skills 的工具,可以把 CLI-Hub 的元技能装进去:

npx skills add HKUDS/CLI-Anything --skill cli-hub-meta-skill -g -y

装好后,Agent 可以先查 CLI-Hub,判断当前任务该调用哪个 harness,而不是每次都从零摸索软件界面。

它已经能控制哪些东西

仓库里的适配目录很长,比较实用的几类包括:

图片、视频和音频

  • GIMP、Inkscape、Krita:图片处理、矢量图和绘画工作流;
  • Kdenlive、Shotcut:剪辑、时间线和导出;
  • Audacity、MuseScore:音频编辑和乐谱操作;
  • OBS Studio:场景、来源和录制控制。

3D、CAD 和游戏

  • Blender:建场景、摆物体、材质和渲染;
  • FreeCAD、3MF:参数化模型、检查和导出;
  • Godot:项目和场景自动化;
  • QGIS、CloudCompare:地图、点云和地理数据处理。

办公和知识管理

  • LibreOffice:文档、表格、转换和导出;
  • Obsidian、Joplin、思源、幕布:笔记和知识整理;
  • Calibre、Zotero:电子书与文献管理。

AI 与自动化工具

  • ComfyUI:提交和管理生成工作流;
  • n8n:操作自动化流程;
  • Ollama、ChromaDB:本地模型和向量库相关操作。

能拿来干嘛

1. 批量处理本地素材

把一整个文件夹的图片统一裁剪、加水印、转格式;把一批音频归一化、切段;把多个视频套同一套字幕和片头。Agent 负责生成参数,CLI 负责稳定执行。

2. 自动做可重复的 3D 场景

告诉 Agent:“在 Blender 里建一个白底产品台,放三盏灯,从 8 个角度渲染。”命令式工作流比不停找面板按钮可靠,也方便第二天原样再跑一遍。

3. 文档和表格流水线

用 LibreOffice 批量把旧格式文件转成 PDF,整理表格、导出指定工作表;再接本地模型总结内容。适合那些数量多、步骤固定、手工做很烦的活。

4. 让本地 Agent 真正“动手”

小模型未必擅长理解复杂截图,但它通常会调用结构明确的工具。把桌面软件包装成 CLI 后,8G 显卡上的本地模型也有机会完成靠谱的多步操作——模型负责计划,软件负责精确执行。

5. 给冷门软件补自动化入口

如果某个软件没有现成 API、没有 MCP,但能通过脚本、文件格式或内部控制接口操作,可以按 CLI-Anything 的流程生成新 harness,再提交到公共 registry。

它和 MCP、computer-use 是什么关系

这三者不是互相替代,而是三层东西:

  • computer-use:像人一样看屏幕、点鼠标,覆盖面最广,但容易受界面变化影响;
  • CLI harness:给具体软件提供确定命令,稳定、可组合、容易测试;
  • MCP:规定 Agent 怎样发现和调用工具,CLI 完全可以再包成一个 MCP 工具。

最稳的实际组合通常是:能走 CLI 就走 CLI,CLI 覆盖不到的少数步骤再用视觉操作。 不要因为 computer-use 看起来更像人,就让它代替所有确定性接口。

普通电脑能不能用

CLI-Anything 本身只是 Python 工具和一批适配层,几乎不吃 GPU。真正的资源开销来自两边:

  1. 被控制的软件——Blender 渲染、ComfyUI 出图当然仍可能需要显卡;
  2. 负责规划的模型——可以是云端模型,也可以是你机器上的本地模型。

因此它的“本地”要拆开说:

  • CLI、harness、桌面软件操作在你的电脑上;
  • 文件可以全程留在本机;
  • 但如果 Agent 接的是云模型,你给模型的指令、工具结果仍可能上云;
  • 想完全离线,需要再配一个能稳定工具调用的本地模型。

8G 卡跑中小型工具调用模型就能起步;纯 CPU 也能用,只是 Agent 做规划会慢一点。工具层本身没有显存门槛。

诚实说:这几条必须知道

  • 覆盖不等于完整。 一个 harness 可能只实现最常用的一部分功能,碰到复杂插件、特殊文件格式,仍要回图形界面;
  • “第一方注册表”也不等于都已稳定。 GIMP 3、Blender 执行链和 FreeCAD 路径问题都还在公开跟踪,实操前要重看当前 Issue / PR 状态;
  • 质量参差。 当前两个注册表合计有一百多条 CLI 记录,但其中也包含云服务和第三方工具,不能统称为“一百多款桌面软件完整支持”;
  • 安装本身是供应链边界。 先检查 cli-hub info,不要让 Agent 自动运行陌生的 Git / shell 安装命令;
  • 命令行也会破坏文件。 Agent 批量执行一个错误参数,比点错一次鼠标破坏得更快;
  • 软件版本会影响兼容性。 上游应用升级接口后,harness 可能需要跟着更新;
  • 不是所有命令都可撤销。 删除、覆盖、发布、发送这类动作,必须保留人工确认;
  • 装了 CLI 不代表模型自动变聪明。 复杂任务仍取决于 Agent 会不会拆步骤、检查结果和处理失败。

一条实用的安全底线

第一次跑任何自动化,按这四条来:

  1. 复制一份测试素材,不碰原件;
  2. 把输出写到新目录,禁止覆盖;
  3. 先只给读取权限,再按需要开放写入;
  4. 涉及删除、上传、付款、发布,强制人工确认。

桌面 Agent 最大的风险不是“它不会”,而是“它会以机器速度把错误做一百遍”。

谁适合,怎么上手

  • 已经在用 GIMP、Blender、FreeCAD、LibreOffice 做重复操作的;
  • 想让本地 Agent 从“回答问题”升级到“操作软件”的;
  • computer-use 总被弹窗、分辨率、主题变化折腾的;
  • 想给内部软件补 Agent 接口、又不想先写一套完整 MCP Server 的。

上手路径很简单:装 cli-anything-hub → cli-hub search 找一个你真正常用的软件 → 查看 cli-hub info → 准备一份测试文件 → 先手动执行一个只读或可逆命令 → 再把它接给 Agent。别第一天就让 AI 接管整个工作流,先证明一个 5 分钟的小任务能稳定重复十次。

#CLIAnything #AIAgent #Blender #普通电脑跑AI #本地自动化

相关学习资料