ARTICLE · 1248187
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。
纯视觉路线通常是:
截屏; 找菜单和按钮; 移动鼠标; 点开对话框; OCR 读取参数; 输入数字; 再截屏确认。
不仅慢,而且任何一个弹窗、主题、语言或分辨率变化都可能让流程跑偏。
CLI 路线则更像:
gimp crop ... --width 1200 --height 1200gimp remove-background ...gimp export ... --format webpAgent 调用命令,拿到结构化结果,知道哪个文件成功、哪个失败。多步任务还能串起来、写进脚本、放进定时任务,也更容易重跑和审计。
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=1Windows 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。真正的资源开销来自两边:
被控制的软件——Blender 渲染、ComfyUI 出图当然仍可能需要显卡; 负责规划的模型——可以是云端模型,也可以是你机器上的本地模型。
因此它的“本地”要拆开说:
CLI、harness、桌面软件操作在你的电脑上; 文件可以全程留在本机; 但如果 Agent 接的是云模型,你给模型的指令、工具结果仍可能上云; 想完全离线,需要再配一个能稳定工具调用的本地模型。
8G 卡跑中小型工具调用模型就能起步;纯 CPU 也能用,只是 Agent 做规划会慢一点。工具层本身没有显存门槛。
诚实说:这几条必须知道
覆盖不等于完整。 一个 harness 可能只实现最常用的一部分功能,碰到复杂插件、特殊文件格式,仍要回图形界面; “第一方注册表”也不等于都已稳定。 GIMP 3、Blender 执行链和 FreeCAD 路径问题都还在公开跟踪,实操前要重看当前 Issue / PR 状态; 质量参差。 当前两个注册表合计有一百多条 CLI 记录,但其中也包含云服务和第三方工具,不能统称为“一百多款桌面软件完整支持”; 安装本身是供应链边界。 先检查 cli-hub info,不要让 Agent 自动运行陌生的 Git / shell 安装命令;命令行也会破坏文件。 Agent 批量执行一个错误参数,比点错一次鼠标破坏得更快; 软件版本会影响兼容性。 上游应用升级接口后,harness 可能需要跟着更新; 不是所有命令都可撤销。 删除、覆盖、发布、发送这类动作,必须保留人工确认; 装了 CLI 不代表模型自动变聪明。 复杂任务仍取决于 Agent 会不会拆步骤、检查结果和处理失败。
一条实用的安全底线
第一次跑任何自动化,按这四条来:
复制一份测试素材,不碰原件; 把输出写到新目录,禁止覆盖; 先只给读取权限,再按需要开放写入; 涉及删除、上传、付款、发布,强制人工确认。
桌面 Agent 最大的风险不是“它不会”,而是“它会以机器速度把错误做一百遍”。
谁适合,怎么上手
已经在用 GIMP、Blender、FreeCAD、LibreOffice 做重复操作的; 想让本地 Agent 从“回答问题”升级到“操作软件”的; computer-use 总被弹窗、分辨率、主题变化折腾的; 想给内部软件补 Agent 接口、又不想先写一套完整 MCP Server 的。
上手路径很简单:装 cli-anything-hub → cli-hub search 找一个你真正常用的软件 → 查看 cli-hub info → 准备一份测试文件 → 先手动执行一个只读或可逆命令 → 再把它接给 Agent。别第一天就让 AI 接管整个工作流,先证明一个 5 分钟的小任务能稳定重复十次。















































































