























你让 Claude Code 跑一个重构任务,去倒了杯咖啡回来,发现它停在权限确认上等了二十分钟。
这是用 AI Agent 编程的日常——Agent 跑在本地,你需要坐在电脑前看着它。Lucarne 解决的正是这个问题:让你通过手机上的 Telegram 或微信,随时收到 Agent 的进展通知,审批操作,甚至继续对话。
Lucarne 是一个用 Rust 编写的开源(MIT)轻量守护进程,运行在你的电脑上,将本地 AI Agent 的状态实时推送到 Telegram 或微信。
核心原则:零侵入。 不需要修改项目代码,不需要安装 MCP 插件,不需要 Hook Agent 进程。它通过监控 Agent 的会话文件来获取状态,通过 Telegram Bot API 或微信 Web 协议来推送消息。
目前支持 5 个 Agent:Claude Code、OpenAI Codex、Gemini CLI、GitHub Copilot、Pi。
macOS / Linux 一行搞定:
curl -LsSf https://github.com/tuchg/Lucarne/releases/latest/download/lucarned-installer.sh | sh
macOS 也可以用 Homebrew:
brew tap tuchg/Lucarne https://github.com/tuchg/Lucarne
brew install lucarned
Windows PowerShell:
powershell -c "irm https://github.com/tuchg/Lucarne/releases/latest/download/lucarned-installer.ps1 | iex"
交互式引导你完成:
~/.lucarned/lucarned.yamllucarned autostart install --start
这会注册为系统级守护进程——macOS 用 LaunchAgent,Linux 用 systemd user service,Windows 用 Task Scheduler。Agent 空闲时自动释放资源。
Telegram 方式:在入口聊天中发送 /panel,打开多 Agent 控制台。可以创建工作区(映射为 Forum Topic)、分配任务、审批权限、查看状态、中断或 fork 会话。
微信方式:Agent 推送进展通知到微信。你引用某条通知消息并回复,Lucarne 自动匹配到原始 Agent 会话,恢复上下文继续对话。
Lucarne 采用分层架构,从下到上分为 Agent 层、核心层、适配层和通道层:
┌─────────────┐ ┌─────────────┐
│ Telegram │ │ WeChat │
└──────┬──────┘ └──────┬──────┘
│ │
lucarne-telegram lucarne-wechat
│ │
└───────┬────────┘
lucarne-adapter
│
lucarne (core)
│
agent-sessions
│
┌──────┬──────┬──────┬──────┐
Claude Codex Gemini Copilot Pi
整个项目是一个 Rust Workspace,包含 8 个 crate:
| Crate | 职责 |
|---|---|
lucarned |
守护进程入口,健康检查,onboarding |
lucarne |
核心:Runtime Bus、Session 管理、Control Plane、History |
lucarne-adapter |
适配器注册表 |
lucarne-channel |
通用通道抽象 |
lucarne-telegram |
Telegram Bot 适配,Forum Topic 工作区 |
lucarne-wechat |
微信适配,QR 码登录,引用路由 |
lucarned-ctl |
CLI 控制工具 |
agent-sessions |
各 Agent 的会话文件解析器 |
Lucarne 不注入 Agent 进程,而是通过 watch 模块监控 Agent 的会话文件。Claude Code 写 .jsonl 日志,Codex 写 JSON 文档,Lucarne 实时读取这些文件的变化,解析出结构化事件(thinking、tool call、tool result、usage 等),转化为统一的 WatchEvent 流。
AgentProviderDescriptor 用函数指针定义了每个 Agent 的发现、解析、监控行为:
default_roots — 会话文件默认存放路径discover_sources — 发现会话文件parse_source_meta — 解析会话元数据parse_agent_session_bytes — 解析完整会话内容parse_watch_reader — 增量解析文件变化每个 Provider 通过 feature flag 按需编译,不用的 Agent 不会增加二进制体积。
Dialect trait 将各 Agent CLI 的 stdio 协议统一为 OutFrame。当 Lucarne 直接启动 Agent 子进程时(而非只监控文件),通过这个协议层进行双向通信,实现任务下发和输出捕获。
微信没有 Telegram 那样的 thread/topic 机制,Lucarne 用了一个巧妙的方案:用户引用推送消息并回复时,系统通过 message_id 或 quoted-text hash 匹配到原始 Agent 会话,自动恢复上下文。两级策略:优先用 message_id 精确匹配,fallback 到文本哈希模糊匹配。
Agent 发起危险操作(文件删除、命令执行等)时,Lucarne 将其转化为 ApprovalRequest 推送到手机。Telegram 上是 [Approve] / [Deny] 按钮,微信上是文本指令。审批结果回传给 Agent,整个过程对 Agent 本身透明。
| 能力 | Claude | Codex | Gemini | Copilot | Pi |
|---|---|---|---|---|---|
| 推理/思考过程 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 工具调用 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 结构化审批 | ✅ | ✅ | ✅ | — | ✅ |
| 向用户提问 | ✅ | ✅ | ✅ | — | — |
| 用量追踪 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 中断会话 | ✅ | ✅ | ✅ | — | ✅ |
| 恢复会话 | ✅ | ✅ | ✅ | — | ✅ |
| 子 Agent | ✅ | ✅ | — | — | — |
| Fork 会话 | ✅ | ✅ | — | — | ✅ |
Claude Code 和 Codex 的支持最完整,Gemini 次之,Copilot 目前功能最少。
opt-level="z" + LTO + panic=abort + strip=true最终二进制体积小、内存占用低,适合作为长期常驻的后台服务。
相比 Cockpit、Claude Code 的官方远程方案,Lucarne 的独特之处在于:
项目正在快速迭代,已规划的功能包括:
agent-sessions 独立为通用 crate作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。