reverse-cli-anything
开源 · 逆向工程 · Agent 工具

没有公开 API,如何自动化闭源桌面软件#

English · reverse-cli-anything · 原生自动化案例

当 AI Agent 需要修改文档、调整 CAD 参数或导出视频,而软件没有合适的公开 API 时,reverse-cli-anything 帮助编程 Agent 研究缺失操作,通过分析发行产物和运行时建立经过验证的 CLI。交付物是可复用的任务工具;新软件是否支持,需要实际研究和验收。

谁会需要这套框架?#

选择自动化路线#

路线 适用情形 需要验证什么
公开 CLI、SDK、脚本 API 或现有 MCP 工具 已开放所需操作。 操作覆盖、支持版本和实际输出,应优先检查。
项目文件编辑 工作目标可以通过已理解的文件格式表达。 软件能否正确打开、保留可编辑性并渲染结果;写入 JSON 本身不能证明控制了实时编辑器。
GUI 自动化或 RPA 工作流程可通过用户界面执行。 焦点、弹窗、时序,以及软件是否真的保存或导出结果。
逆向恢复原生控制 公开接口不足,且可通过研究恢复内部业务操作。 ABI、线程、对象生命周期、活动项目与会话、版本身份和完整流程结果;这是本框架的主要工程用途。

一个流程可以组合多条路线。原生控制不等于无头运行:CapCut 案例需要应用进程和活动编辑会话。CLI 使用 JSON 输入输出,只说明其对外契约,不能据此判断底层是在编辑文件还是调用软件。

如何让 AI Agent 为新软件建立 CLI?#

先使用安装提示词,再描述需要交付的原生结果:

用 reverse-cli-anything 为 <软件与版本> 构建 CLI。
我需要打开 <输入>,完成 <具体编辑>,保存可编辑的原生项目,
并导出 <格式>。先检查公开接口,再研究缺失能力,
在真实软件中验证完整流程,并按需验证保存后重新打开。

Agent 应先明确操作缺口和目标版本,再按原生二进制、托管程序集、嵌入脚本或协议选择分析工具,恢复有明确边界的调用契约,验证单项操作,再扩展完整流程。工程手册说明具体方法,初步调查指南说明研究路线选择。

找到内部函数后,怎样变成可靠工具?#

函数地址只是起点。封装还必须明确调用对象、执行线程、参数单位、所有权和完成信号。修改操作需要核对原生状态,以及保存或导出的产物;交付时保留目标版本、证据和恢复说明。

框架提供适配器契约、结构化调用和回执、交付指南。MCP 集成可以调用交付的 CLI,但本框架不宣称为任意目标自动生成现成 MCP 服务。

软件升级后,CLI 怎么维护?#

内部接口可能随版本变化。需要重新检查版本身份、定位变化入口,并对受影响工作流重新验收,才能声称兼容。参见版本升级流程和状态恢复指南。某个版本可用,不代表其他版本自动兼容。

在哪里看真实效果?#

参见 CapCut 原生剪辑导出、Axure RP 原型生成和 Shapr3D 原生 CAD 建模。每个案例均链接实现、支持版本、工作流录像和验收证据,便于判断是否适合你的任务。

CLI、MCP 与 GUI 自动化:区分调用入口和执行后端#

选择开源桌面自动化仓库时,需要分别确认 Agent 如何调用,以及工具如何修改软件。提供 JSON 结果的命令行和 MCP 工具属于 Agent 的调用入口;两者背后都可能使用项目文件编辑、界面操作或恢复出的内部函数。采用 MCP 本身不能决定软件操作的覆盖范围。

具备终端权限的 Agent 可以直接使用交付的 CLI,按文档传入参数并读取结果。只有 MCP 入口的客户端则需要额外集成:把选定 CLI 操作暴露为工具,校验参数、保留错误,并遵守同样的会话和版本要求。本仓库的运行时契约和适配器契约说明可复用的 CLI 部分;未提供适用于所有软件的通用 MCP 服务。

如何评估一个开源桌面自动化工具?#

先选一个能够交付可编辑原生工程和导出产物的小任务,再检查执行后端及实际证据。命令成功返回不能单独证明任务完成。

需求 验收问题 参考入口
视频剪辑 正在运行的编辑器是否保留时间线和字幕,软件自身是否渲染出成片? CapCut 工作流与证据
生成交互原型 原生文档能否重新打开,导出的按钮和输入框是否按要求工作? Axure 原生与浏览器检查
修改 CAD 参数 原生模型是否保留目标尺寸,导出几何是否体现修改? Shapr3D 固定板试验
复用 Agent 工具 新会话能否发现操作、理解错误并重现已验证流程? 交付指南
升级与故障恢复 是否记录目标 build,更新后能否对受影响操作重新验收? 构建、恢复与升级流程

对比 Windows RPA、GUI 自动化与原生控制时,应围绕具体操作缺口判断。UI 控制依赖焦点和界面布局;原生控制依赖调用约定、UI 线程调度和对象生命周期。两种路线都不代表覆盖全部功能。保留输入、软件 build、原生产物与验收记录,才能让其他开发者复现。

在 GitHub 查看本页源文档