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.

Herdr hosts everything. Lantern is a plugin workspace inside it. Elves is a skill that runs inside an agent’s pane (or any Claude Code / Codex / Grok Build / omp session) — not a layer of its own runtime.

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

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

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

Don’t

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

Don’t

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.

How Herdr, Lantern, and Elves relate to existing fleet pieces
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

Adoption order

  1. Herdr on an always-on Tailscale host; attach from the laptop with herdr --remote <host>.
  2. Lantern once the sidebar is actually busy.
  3. Elves (coding kernel) on one repo with a written plan, after you decide it is not a cloud-agent job.