sheprd
A client-side fork of herdr

One sidebar for every coding agent, on every machine.

You run agents on your laptop and on a server or two. sheprd groups them by project across machines, shows who needs you, and lets agents message each other. Your servers keep running stock herdr.

curl -fsSL https://raw.githubusercontent.com/andreconde21/sheprd/main/scripts/sheprd-install | bash
Linux x86_64 · static binary Apache-2.0 Source on GitHub
○ active ● 2 detailed
▾ ★ storefront
● Fix checkout rounding
gpu-box ▰▰▰▱▱ 3/5
◐ Product image cache
laptop · ctx 212k
▾ ★ billing
○ ⚑ Invoice PDF layout
billing-web
● Retry failed webhooks
billing-web · gpu-box
▸ infra ○ 3
▾ Other
○ Weekly notes 4
new · laptop menu
What sheprd adds to herdr

Organised by project, not by machine.

▾ ★

One list across machines

Projects collect their agents from every machine in one place. Drag a workspace in or out, or let a name rule place it. Everything else lands in Other.

● ○ ⚑

Attention you control

Agents that finished or are waiting stay unread until you look. Keep one active on purpose, dismiss the rest, and jump to the next that needs you with prefix+u.

ctx 581k

Peek, don't clutter

Hold the peek key to see idle time, context size, today's tokens per project and each machine's latency. The rest of the time the sidebar shows status and topic only.

▰▰▰▱▱ 3/5

What each agent is doing

With the bundled Claude Code hook: a to-do progress bar on the row, a timeline of each prompt and what followed, and the references the agent talked about.

laptop ⇄ server

Agents talking to agents

sheprd msg lets an agent on one machine ask an agent on another, even when the server can't reach your laptop.

SHOP-212

Your tracker, one click away

Teach sheprd what your issue ids look like. Ctrl+click one in any agent's output and it opens in a scrollable markdown reader.

sheprd msg

Ask the agent on the server. Tell the one on your laptop.

Any agent that can run a shell command can take part. Every message says who sent it and how to reply.

  • Laptop to server goes direct, over the SSH link sheprd already uses.
  • Server to laptop waits in a small queue on the server. sheprd collects it while it's open, so the server never gets access to your machine.
  • Guardrails: the receiver is told the message comes from another agent, and to ask you before anything destructive or public. A rate limit stops two agents from ping-ponging.
$ sheprd msg list
laptop/billing        w3:p1   idle
server/api            w8:p1   working  321k
$ sheprd msg send server/api "Is the webhook retry merged?"
delivered to server/api (w8:p1, was working)
References

Plug in your own tracker.

sheprd doesn't know your tracker. You describe what a reference looks like and the command that prints one. GitHub issues, Linear, a folder of markdown: anything with a command line works.

  • Ctrl+click a reference in any agent's output to read it.
  • The reader turns front matter into a header and renders the markdown. Scroll with the wheel, arrows or PgUp/PgDn; Esc closes.
  • Mentioned: right-click an agent to see the references it talked about.
# ~/.config/herdr/sheprd-refs.toml
[[refs]]
name    = "issues"
pattern = "#\\d+"
command = "gh issue view {id}"

[[refs]]
name     = "shop"
pattern  = "SHOP-\\d+"
ids_from = "~/notes/tasks"   # only ids that exist
command  = "cat ~/notes/tasks/{id}.md"
Defaults, no config needed

Keys

prefix+spacePeek: idle age, context, jump numbers, usage, latency
prefix+uNext agent that needs you
prefix+#Show jump numbers, type one to jump
prefix+alt+cNew workspace on a machine you pick
prefix+/Filter the sidebar
prefix+.Project menu for the focused workspace
prefix+alt+hShow or conceal hidden workspaces
ctrl+clickOpen the reference under the mouse