explaingit

tuchg/lucarne

57RustAudience · developerComplexity · 3/5ActiveLicenseSetup · moderate

TLDR

A Rust background service that forwards prompts from local AI coding agents like Claude and Codex to your phone via Telegram or WeChat so you can approve or reply remotely.

Mindmap

mindmap
  root((Lucarne))
    Inputs
      Agent session files
      Telegram or WeChat messages
    Outputs
      Phone notifications
      Approve and deny replies
      Session status updates
    Use Cases
      Babysit Claude from your phone
      Approve Codex commands remotely
      Fork agent sessions on the go
    Tech Stack
      Rust
      Telegram Bot
      WeChat
      Homebrew

Things people build with this

USE CASE 1

Get phone notifications when Claude or Codex needs approval to run a command

USE CASE 2

Approve or deny agent shell commands from Telegram while away from the laptop

USE CASE 3

Reply to a WeChat quoted message to answer an agent's clarifying question

USE CASE 4

Run a Telegram /panel to see all open agent sessions as forum topics

Tech stack

RustTelegramWeChatHomebrewmacOS

Getting it running

Difficulty · moderate Time to first run · 30min

macOS only today, needs a Telegram bot token or a WeChat QR pairing before notifications start flowing.

MIT licensed, free to use, modify, and ship commercially as long as the copyright notice stays in the code.

In plain English

Lucarne is a small background service for your computer that pipes the chatter of local AI coding agents out to your phone, so you can leave the laptop and still get pinged when one of them needs an answer. The agents it supports today are Claude, Codex, Gemini, Copilot, and Pi. The pitch on the front of the README is direct: stop babysitting your local AI agents. The selling point is that it does not change how those agents are installed or what they have access to. There are no hooks, no skills, no MCP plugins, no edits to the project you are working on. You install Lucarne with Homebrew, run an init command, and either point it at a Telegram bot or scan a WeChat QR code. From that moment, when one of your agents asks for permission to run a command, asks a clarifying question, or fails, the message shows up as a chat notification you can tap to approve or deny. The two channels feel slightly different in use. In WeChat, you quote one of the notifications and reply to it, and Lucarne uses the quoted message to figure out which agent session you are talking to, so the reply lands back in the right context. Lucarne tries to match by the original message id first, then by a hash of the quoted text. In Telegram, the entry point is a /panel command which gives you a mobile console of all your workspaces and sessions, mapped to Telegram forum topics, with buttons for approve, deny, status, interrupt, and fork. Under the hood the code is written in Rust and structured as separate crates. A channel adapter layer talks to Telegram or WeChat. The core holds the runtime bus, the control plane, history, and the daemon. A separate piece called agent-sessions watches and parses the on disk session files of each supported agent CLI. Capability varies by agent: Claude and Codex get the full set including sub-agents and forking sessions, while Copilot is more limited. The project is MIT licensed, supports macOS today, and lists Linux and Windows on the roadmap.

Copy-paste prompts

Prompt 1
Install Lucarne with Homebrew on macOS and run the init command for Telegram
Prompt 2
Set up the WeChat QR code channel and test approving an agent command from my phone
Prompt 3
Use the Telegram /panel command to list all my Claude sessions and approve one
Prompt 4
Explain how Lucarne maps a WeChat quoted reply back to the right agent session
Prompt 5
Walk me through the Rust crate structure with channel adapters, core runtime, and agent-sessions
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.