首页
社区
课程
招聘
[转帖]OpenCLI:把任何 Electron 应用变成 AI 可以操控的命令行
发表于: 23小时前 259

[转帖]OpenCLI:把任何 Electron 应用变成 AI 可以操控的命令行

23小时前
259

原文链接:ee9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0M7q4)9J5k6i4N6W2K9i4S2A6L8W2)9J5k6i4q4I4i4K6u0W2j5$3!0E0i4K6u0r3M7#2)9J5c8V1I4Z5j5#2A6Y4g2f1)9K6b7%4g2a6g2p5#2J5M7Y4q4e0d9o6S2H3f1h3N6Q4x3U0k6F1j5Y4y4H3i4K6y4n7 作者:新时代的老登


这玩意解决了什么问题

现在 AI agent 生态最大的痛点不是模型不够强,是工具之间互不相通

OpenClaw 能接 WhatsApp、Slack、Telegram,但它操控不了你电脑上的桌面应用。Claude Code 能读代码仓库,但它看不到你的 Figma、飞书、Antigravity 里在发生什么。每个工具都是一座孤岛。

之前的解决方案要么是各家 API(前提是人家开放了 API),要么是 computer use 这种截屏+点击的笨办法。前者覆盖率低,后者又慢又不稳定。

OpenCLI 走了第三条路:直接把 Electron 应用的内部操作封装成 CLI 命令。

Electron 应用本质上是一个 Chromium 浏览器壳子套着一个 Web 应用。OpenCLI 利用这一点,hook 进 Electron 的 IPC(进程间通信)层,把 UI 上的按钮点击、文本输入、页面导航等操作翻译成命令行指令。

效果就是:你在终端里敲一行命令,等价于在 GUI 上点了一个按钮。但命令行能被脚本调用,能被 AI agent 调用,能被管道串联。

技术上怎么做到的

Electron 应用的架构是 main process + renderer process,两者通过 IPC channel 通信。OpenCLI 的核心思路是:

1. 注入 preload 脚本:在 Electron 启动时注入一个 preload script,拿到 renderer 进程的 DOM 和 IPC 访问权限

2. 映射操作为 CLI 命令:扫描应用的 IPC channel 和 DOM 元素,自动或手动建立"命令 → 操作"的映射表

3. 暴露 CLI 接口:用一个本地 HTTP server 或 Unix socket 接收命令行调用,转发给注入的 preload 脚本执行

@jakevin7 在评论区说,支持一个新 APP 只需要 10 来分钟。因为大部分 Electron 应用的 IPC 结构是类似的,映射表可以复用。

他还确认了飞书(也是 Electron)也可以支持,只是还没测试完。

和 MCP 的区别

你可能会问:这和 MCP(Model Context Protocol)有什么不同?

MCP 是模型侧的协议——它定义了 AI 模型如何调用外部工具。你需要为每个工具写一个 MCP server,把工具的能力暴露给模型。

OpenCLI 是应用侧的破解——它不需要应用方配合,直接从外部把应用的操作能力"掏出来"。

两者是互补的。理想场景是:OpenCLI 把桌面应用 CLI 化 → 包装成 MCP server → AI agent 通过 MCP 协议调用。

评论区有人说得好:"opencli 统一 agent 跨应用的交互接口很巧妙,比直接调各家 API 优雅。"

组合起来能干啥

推文里展示的是让 Antigravity 和 Codex 对话。但想象空间远不止这个:

Claude Code + Claude Desktop:让 Claude Code 在终端里操控 Claude 桌面版的 Artifact,生成 UI 原型后直接丢给代码 agent 实现。一个负责设计,一个负责编码。

OpenClaw + 飞书:OpenClaw 收到 Telegram 消息后,通过 CLI 在飞书里创建任务、发通知、更新文档。之前这需要飞书开放 API + 写一堆对接代码,现在不用了。

批量操控:写一个 shell 脚本,串联 3 个 Electron 应用的操作。比如从 Notion 拉数据 → 在 Figma 里生成图表 → 发到 Slack 频道。全程命令行,可重复执行。

之前有人用 OpenClaw 打开 tmux 窗口来操控各种工具,现在 OpenCLI 直接把 GUI 应用的操作权限交出来了,不用再绕那一层。

值得关注的原因

这个项目指向一个趋势:AI agent 的能力边界正在从"能调 API 的应用"扩展到"所有桌面应用"。

之前 agent 只能操控有 API 的工具——没有 API 就只能用 computer use 截屏点击,又慢又脆弱。OpenCLI 把 Electron 生态里的应用全部拉进了 agent 可操控的范围。

而 Electron 应用有多少?VS Code、Slack、Discord、Figma、Notion、飞书、钉钉、Obsidian、Spotify、1Password——你日常用的桌面应用,一大半都是 Electron 做的。

当这些应用全部可以被 CLI 操控,agent 的能力就不再受限于"谁开放了 API"。

项目还很早期,稳定性和安全性都需要观察。但方向是对的——在 AI agent 和桌面应用之间,缺的就是这么一层 CLI 中间件。



[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 45305
活跃值: (68176)
能力值: (RANK:145 )
在线值:
发帖
回帖
粉丝
2

总结:


这篇文章介绍了一个名为 OpenCLI 的开源工具及其带来的范式转变。

核心概念:OpenCLI 能够将任何基于 Electron 框架开发的桌面应用程序(如 VS Code、Slack、Figma、飞书、Claude 桌面版等)转变为一个可以通过命令行(CLI)进行操作的工具。这本质上是为 GUI 应用创建了脚本化、可编程的接口。

它解决了什么问题:它旨在打破当前 AI Agent 生态 中“工具孤岛”的困境。此前,AI 只能通过应用开放的官方 API 或低效的“截屏+点击”方式与桌面应用交互,覆盖率和效率都很低。OpenCLI 提供了第三条路径,让 AI 能以结构化的方式操控大量没有开放 API 流行应用。

技术原理:其核心思路是利用 Electron 应用(主进程 + 渲染进程)的架构特点:

  1. 注入:在应用启动时注入一个 preload 脚本,从而获得对渲染进程的 DOM 和内部进程间通信(IPC)的访问权限。

  2. 映射:扫描应用的 IPC 通道和 UI 元素,建立“CLI命令 → 具体UI操作(如点击按钮、输入文本)”的映射表。

  3. 暴露:通过一个本地服务器暴露命令行接口,接收并执行命令。据开发者称,为新的应用添加支持可能只需十分钟左右。

关键区别

  • MCP 互补:MCP 是定义AI如何调用工具的模型侧协议,需要为每个工具编写适配的服务器。OpenCLI 是应用侧的工具,它直接从外部“破解”应用,将其能力暴露出来,理论上可以被包装成 MCP 服务器供 AI 调用。

  • Computer Use 对比:它比基于视觉的自动点击方法更直接、稳定和快速。

应用场景与想象空间

  • AI 自我驱动:例如,让终端中的 Claude Code 通过 CLI 操控 Claude 桌面版,实现“AI 驱动 AI 写代码”。

  • 工作流自动化:串联多个 Electron 应用,例如,从 Notion 提取数据 → 在 Figma 中生成图表 → 发布到 Slack,全程通过脚本完成。

  • 连接不同工具:让专精于某个平台(如 Telegram)的 AI Agent 能够无缝操作另一个平台(如飞书)上的任务。

重要意义:OpenCLI 代表了一个重要趋势——AI Agent 的能力边界正在从“有开放 API 的应用”扩展到“几乎所有桌面应用”。由于大量主流桌面应用都基于 Electron 开发,这个工具极大地扩展了 AI 可自动化操作的范围,不再受限于厂商是否提供官方 API。尽管项目尚处早期,但它为 AI 与桌面环境之间的无缝集成提供了一个巧妙而强大的中间件思路。


23小时前
0
游客
登录 | 注册 方可回帖
返回