没有公开 API,如何自动化闭源桌面软件#
English · reverse-cli-anything · 原生自动化案例
当 AI Agent 需要修改文档、调整 CAD 参数或导出视频,而软件没有合适的公开 API 时,reverse-cli-anything 帮助编程 Agent 研究缺失操作,通过分析发行产物和运行时建立经过验证的 CLI。交付物是可复用的任务工具;新软件是否支持,需要实际研究和验收。
谁会需要这套框架?#
- Agent 开发者和自动化工程师: Agent 能运行命令,但桌面应用没有开放所需操作。
- 创作与工程软件用户: 需要保留可编辑的原生工程,使用软件自身生成结果,并通过对话重复执行工作流。
- 逆向工程开发者: 已找到内部函数或命令,需要明确调用约定、会话、状态与验证方法,才能交付可用接口。
- 工具维护者: 软件升级导致适配器失效,或者需要让另一个 Agent 接续已有研究。
选择自动化路线#
| 路线 | 适用情形 | 需要验证什么 |
|---|---|---|
| 公开 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、原生产物与验收记录,才能让其他开发者复现。