你有没有过这样的经历?当你的AI编程助手正在执行一个大型重构任务时,你短暂离开了电脑,结果它在一个权限提示前停了下来,呆呆地等待了十五分钟,就因为你不在电脑前按一下“是”。正是为了解决这个问题,我开始为OpenACP项目贡献代码。
像Claude Code、Gemini CLI、Codex这类AI工具固然强大,但它们都默认你始终坐在终端前。一旦你拿起手机或者离开工位,你就失去了对它们的可见性和控制力。目前大家尝试的解决方案,比如通过SSH连接到tmux会话(在手机上很不稳定),或者设置VPN和远程桌面(速度缓慢),都算不上理想。我真正想要的是:能够通过Telegram发送一条消息,实时看到AI代理的工具调用,并直接在手机上批准或拒绝这些操作。
OpenACP正是一款为此设计的自托管桥接工具,它连接了你的消息平台和AI编程助手。它利用Agent Client Protocol (ACP)——一个开放的编辑器与代理通信标准——将Claude Code、Gemini CLI和Codex等AI代理连接到Telegram、Discord和Slack。这个系统架构是这样的:你(通过Telegram/Discord/Slack)→ OpenACP(桥接器+会话管理器)→ AI代理(Claude Code, Codex, Gemini CLI等)→ 你的代码库。所有这一切都运行在你自己的机器上,没有云端中继,没有第三方访问你的代码,也无需订阅费用。
以在Telegram上控制Claude Code为例,开始使用非常简单。首先,你需要安装OpenACP:运行 npm install -g @openacp/cli(需要Node.js 20+,Claude Code需单独安装)。然后,执行 openacp。首次运行时,它会启动一个交互式设置向导,询问你想要使用的平台(Telegram、Discord、Slack或全部)、你的Bot Token、工作目录、默认使用的AI代理以及是否以守护进程模式运行。对于Telegram,你需要从@botfather获取一个Bot Token;向导会自动验证Token并检测你的聊天ID,无需手动修改配置文件。一旦运行起来,你只需向你的Bot发送任何消息,OpenACP就会创建一个会话,将Claude Code作为ACP子进程启动,并将所有输出实时流式传输回来。每个会话都会获得一个独立的论坛主题(或线程,具体取决于平台),你甚至可以并行运行多个AI代理,每个代理都在自己的主题中。
当AI代理工作时,你会实时看到它的工具调用,比如文件读取、写入、grep命令、终端命令——所有这些都实时流式传输到你的聊天界面。如果AI代理需要执行一项需要审批的操作,你会在消息中收到内联按钮,直接在手机上点击“批准”或“拒绝”。正是这个功能,完美解决了我的“午餐问题”。现在,我可以在手机上随时监控一个耗时任务的进展,并在它暂停的瞬间解除阻塞。