Lucarne:不用盯着电脑也能掌控 AI Agent,微信/Telegram 远程遥控本地编码助手

你让 Claude Code 跑一个重构任务,去倒了杯咖啡回来,发现它停在权限确认上等了二十分钟。

这是用 AI Agent 编程的日常——Agent 跑在本地,你需要坐在电脑前看着它。Lucarne 解决的正是这个问题:让你通过手机上的 Telegram 或微信,随时收到 Agent 的进展通知,审批操作,甚至继续对话。

这篇文章涵盖什么

  • Lucarne 是什么、解决什么问题
  • 快速上手流程
  • 架构设计和核心实现
  • 各 Agent 支持的能力矩阵
  • 适用场景分析

Lucarne 是什么

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 init

交互式引导你完成:

  1. 选择启用的 Agent(claude / codex / copilot / gemini / pi)
  2. 配置 Telegram Bot Token(可选)
  3. 扫微信二维码登录(可选)
  4. 生成配置文件 ~/.lucarned/lucarned.yaml

启动后台服务

lucarned 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 流。

Provider 抽象

AgentProviderDescriptor 用函数指针定义了每个 Agent 的发现、解析、监控行为:

  • default_roots — 会话文件默认存放路径
  • discover_sources — 发现会话文件
  • parse_source_meta — 解析会话元数据
  • parse_agent_session_bytes — 解析完整会话内容
  • parse_watch_reader — 增量解析文件变化

每个 Provider 通过 feature flag 按需编译,不用的 Agent 不会增加二进制体积。

Dialect 协议层

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 本身透明。

Agent 能力矩阵

能力 Claude Codex Gemini Copilot Pi
推理/思考过程
工具调用
结构化审批
向用户提问
用量追踪
中断会话
恢复会话
子 Agent
Fork 会话

Claude Code 和 Codex 的支持最完整,Gemini 次之,Copilot 目前功能最少。

技术栈

  • Rust — 全栈实现,零运行时依赖
  • Tokio — 异步运行时(multi-thread + process + io-util)
  • Rusqlite — 本地 SQLite 存储会话状态
  • Reqwest — HTTP 客户端,用于 Telegram Bot API
  • Serde — JSON/YAML 序列化
  • Release 编译优化:opt-level="z" + LTO + panic=abort + strip=true

最终二进制体积小、内存占用低,适合作为长期常驻的后台服务。

适合谁用

  • 重度 Agent 用户:天天跑 Claude Code / Codex,不想被绑在电脑前
  • 需要审批场景:Agent 经常执行危险命令,需要人工确认
  • 多 Agent 并行:同时跑多个 Agent,需要一个统一的移动端控制台
  • 团队协作:通过 Telegram Forum Topic 给不同项目分配独立工作区

和其他方案的差异

相比 Cockpit、Claude Code 的官方远程方案,Lucarne 的独特之处在于:

  1. 不依赖特定 Agent 的远程功能——它是独立的中间层,任何支持的 Agent 都能用
  2. 微信支持——目前市面上几乎没有支持微信推送的 Agent 管理工具
  3. 纯本地运行——不经过第三方服务器,你的 Agent 会话数据不会上传

路线图

项目正在快速迭代,已规划的功能包括:

  • 更多通道:Discord、Slack、飞书、钉钉、Matrix、QQ
  • 更多 Agent:Cursor、OpenCode
  • 消息模式:steer / queue
  • 远程 Agent 环境支持
  • agent-sessions 独立为通用 crate

作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。

本文首发于 AI人工智能时代,转载请注明出处。

posted @ 2026-05-22 21:08  iTech  阅读(2)  评论(0)    收藏  举报