Internal briefing · for Austin Lin · 2026-08-26
Herdr, Lantern, Elves
Herdr is the runtime, Lantern is the operator plugin, Elves is the overnight skill. A stack, not three interchangeable tools.
runtime Herdr — tmux for coding agents
How it works
A background server plus attached clients. It owns real terminals: workspaces (one per repo/task), tabs (layouts), panes (real processes). It does not wrap or replace Claude Code, Codex, Cursor, Grok, Hermes, opencode, or Copilot — it detects those CLIs (Hermes shows up as “Hermes Agent”; docs/agents, CHANGELOG 0.8.2) and marks each agent working / blocked / done / idle / unknown.
Detach with ctrl+b q; the server and the agents keep running. Drop network, restart the machine — the layout comes back. Reattach from any terminal, over SSH, or from a laptop with herdr --remote <host> (or SSH in, then herdr). Mouse-native TUI; prefix defaults to ctrl+b. Agents and humans use the same CLI/socket API, and plugins are ordinary argv packages with a herdr-plugin.toml.
Placement: Herdr belongs on an always-on Tailscale host, not a sleep-prone laptop. A layout survives a restart, but nothing runs while the machine sleeps — Elves documents machine-sleep as failure #1. herdr.dev’s item 05 (“where do agents run while you sleep?”) is currently redacted; there is no hosted product to point at, so plan on a host you keep awake.
Install: curl -fsSL https://herdr.dev/install.sh | sh
Use here
- A Mac already runs two or more coding CLIs and they die when the laptop sleeps or the terminal tab closes.
- You want one attachable session you can reach over Tailscale —
herdr --remote <host>from the laptop, or SSH thenherdr. - You want a sidebar that says which agent is blocked.
First host: the always-on Tailscale machine where Claude Code (and maybe Hermes) runs — not the lid-closing laptop. Attach from the laptop.
Don’t
- Don’t park the herd on a sleep-prone laptop; sleep kills the agents even though the layout comes back.
- Don’t install Herdr on the Grok box to “host Grok Bots.” Grok Bots are listener-driven (Slack/GitHub/Teams/Linear/Sentry/PagerDuty/cron), not local CLI panes.
- Leave the box’s git-installed Hermes alone; don’t migrate it to official Docker on that box.
- Don’t replace tmux for non-agent shells if one CLI is already fine.
plugin Lantern — the operator seat (aigora.lantern)
How it works
An operator plugin for Herdr. It does not replace Herdr and does not wrap agent CLIs. First open creates a workspace labelled 🔥 lantern at $HOME and seats one chat tab (named like home · claude · opus); later opens reuse and focus it. Open via hsh (shorthand for herdr plugin action invoke aigora.lantern.open) or prefix+H — capital H; prefix+h is pane-left.
The chat runs one helper CLI: HELPER_AGENT is only agent (Cursor) | devin | claude | codex | grok — not Hermes — with the first found on PATH if it’s empty. That CLI drives herdr through a mutate-gated wrapper (bin/herdr, HERDR_HELPER_OK=1). It snapshots the field — pane titles, Claude /goal//recap, who is waiting — so you can ask “what are they working toward?” or “what’s going on.” Elves it only observes: bin/elves-floor reads .elves-session.json files for a “how’s the night shift?” readout — no cobble, no land, no control plane.
It seats new agents, focuses panes, and starts reviews via gh (it never checks out the PR). Mutating commands it just does, then reports; it only stops when the target is unclear. It never closes its own tab. Agents it seats start with that kind’s ordinary auto-approval flags — yolo/bypass stays off unless the user confirms the exact flag.
Install: herdr plugin install aigorahub/herdr-lantern (unlink first if it was linked). Per-user helper.conf lives under herdr plugin config-dir aigora.lantern. Requires Python 3; Windows needs Git for Windows.
Use here
- Herdr is already the daily driver and there are enough panes that hunting for the right one is a tax.
- You want English instead of memorizing the
herdrCLI. - You run Elves overnight and want a morning “night shift” readout.
Don’t
- Don’t install Lantern before Herdr.
- Don’t use it as a fleet chat room, and don’t re-enable the chat bridge: the Slack/Telegram/WhatsApp door was removed in 0.8.0 because allowlist = shell and the herd only exists on an awake machine (
plans/slack-app-discontinued.mdin the Lantern repo). Buzz#fleetstays the room. - Don’t use it as a Grok Bot. Lantern’s “Grok” is the Grok CLI / Grok Build kind, not the Grok Bot product.
- Don’t expect a multi-box view: no documented way to see box A’s panes from a Lantern on box B except attaching Herdr to A. There is no Tailscale-specific feature.
skill Elves — overnight implementer
How it works
An Agent Skill — not a runtime — for Claude Code, Codex, Grok Build, and Oh My Pi (Hermes is not a coding host). You write a plan; a subscription-native worker implements it in a separate session; durable run files survive context compaction; you own the merge. Chat-to-work produces a landable PR. Chat-to-land / \land-pr is the only merge path.
Two kernels ship in the repo: the coding kernel above (SKILL.md, git/PR), and skills/elves-grok-bot/SKILL.md v1.0.0 — a thin, non-git kernel for CRM/mail work on a Grok Bot, not for coding, invoked with “use elves,” not /goal. Keep the products straight: Grok Bot ≠ Grok Build ≠ Grok CLI.
The discovery pass is read-only and writes only to advisor-plans/. Lantern can see Elves sessions (via bin/elves-floor) but does not drive cobble or land. (Deliberately not a catalog of every cobbler/fugu/manus flag — read the guide when you need one.)
Use here
- There is a written plan and you want a landable PR while you sleep, on Claude Code / Codex / Grok Build / omp.
- A discovery pass: “what is worth doing on this repo?”
Don’t
- Don’t run Elves and a Cursor cloud agent on the same branch/PR.
- The yc-s05 fidelity review stays with the Grok Bot (archive compare). Elves enters only if Austin wants overnight implementation of an already-written fidelity fix plan.
- Elves does not replace Buzz, Hermes Telegram, or Grok Bot listeners.
- Not for shop hardware — flashing boards is Maker Bot territory; none of the three documents hardware at all.
Fleet fit
Context: Grok Bots run on the Cursor/Grok box, listener-driven only (Slack/GitHub/Teams/Linear/Sentry/PagerDuty/cron) — no Buzz plugin, no first-class Hermes API. Hermes, OpenClaw, and Claude Code run on Macs over Tailscale; Hermes is also a git install on the Grok box (leave it). The shared fleet room is Buzz #fleet (planned). Cursor cloud agents already handle repo implementation (yc-s05 PR#1). Hardware/shop is Maker Bot.
| Fleet piece | It stays for | Where the stack touches it |
|---|---|---|
Buzz #fleet |
Cross-fleet chat (planned). Don’t invent a third adapter. | Nowhere. Lantern is an operator seat inside one Herdr, and its Slack/Telegram/WhatsApp bridge was removed in 0.8.0 — don’t re-enable it. |
| Grok Bot | Listener-driven work (Slack/GitHub/Teams/Linear/Sentry/PagerDuty/cron), incl. the yc-s05 fidelity review (archive compare). | Only the thin elves-grok-bot kernel (v1.0.0): non-git CRM/mail, not coding, invoked with “use elves.” No Herdr on its box — not a local CLI pane. Lantern’s “Grok” is the CLI / Grok Build kind, never the Bot. |
| Hermes | Its current homes: Macs over Tailscale, plus the git install on the Grok box (do not migrate to Docker there). Telegram interop stays Hermes-native. | Sidebar state only: Herdr detects “Hermes Agent” (docs/agents, CHANGELOG 0.8.2), so a Mac Hermes pane shows in the sidebar. Lantern can’t use it as HELPER_AGENT and Elves doesn’t list it as a coding host — neither will drive it. |
| OpenClaw | Its current role on the Macs. | Undocumented in all three. At best an unsupported process in a pane — no detection promised. |
| Cursor cloud agents | Repo implementation in the cloud (yc-s05 PR#1). | Elves is the local-overnight alternative for a written plan. Pick one per task — never both on the same branch/PR. |
Use none of them for
- Cross-fleet chat (Buzz
#fleet). - Waking Grok Bots.
- Hermes Telegram interop.
- Shop hardware (Maker Bot) — none of the three documents hardware.
- Replacing tmux for non-agent shells if one CLI is already fine.
Adoption order
- Herdr on an always-on Tailscale host; attach from the laptop with
herdr --remote <host>. - Lantern once the sidebar is actually busy.
- Elves (coding kernel) on one repo with a written plan, after you decide it is not a cloud-agent job.