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 · macOS 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
See it

What the agent has been doing, without reading its transcript.

A real session against a server: the right panel (prefix+shift+b) with the agent's summary, its question and to-do; the status board (prefix+shift+u); then ctrl+click on a Markdown path opens it in the editor, in a split on that machine.

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 has been doing

A panel on the right for the agent you're looking at: a short summary of its work (any agent, any model you plug in), the questions it waits on, its to-do list, and each task it handed to subagents with its dev, review and browser-check stages. No need to read the transcript.

✗ PR #7

PR, checks and deploys

Plug in a command per forge or pipeline and every workspace shows its PR, checks and deploy state. Red CI counts as needing you.

board

Every agent on one page

A status board across machines, grouped by project, those that need you first, with what each is on and what it's asking.

3 ms

A server that feels local

What you type on another machine shows at once, like mosh. Switching workspaces shows the last screen immediately, and machines reconnect seconds after Wi-Fi comes back.

laptop → dev

Move an agent, keep the conversation

Closing the laptop? Move a Claude Code agent to the server: sheprd checks the repo there, carries your uncommitted changes as a commit or a patch, and resumes the same conversation on the other machine.

src/main.rs:42

Ctrl+click opens anything

A path an agent printed opens in your editor at the line, in a split next to that agent, on its machine. Images and PDFs open in your viewer, localhost:3000 on the server opens through an SSH tunnel, and prefix+i labels everything on screen so you never reach for the mouse.

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; hold Ctrl over it to see its title.
  • 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"
Coming from herdr?

Same runtime. Your servers don't change.

  • Only the client changes. sheprd attaches to stock herdr servers of the same version, locally and over SSH. Nothing to install on the servers beyond herdr itself.
  • Side by side. sheprd installs to ~/.local/share/sheprd and leaves your herdr alone; run either one against the same sessions.
  • Same config and state. It reads ~/.config/herdr, the same sockets and keys; its own settings live in sidebar.toml, which stock herdr ignores.
  • Everything herdr does, sheprd does. It follows herdr's stable releases: a daily job rebases sheprd onto each new one and the full test suite runs before it ships.
  • Back any time. Detach and run herdr: your workspaces and agents are where you left them.
Releases

What's new

Every release with its notes: GitHub releases.

Defaults, no config needed

Keys

prefix+spacePeek: idle age, context, jump numbers, usage, latency
prefix+uNext agent that needs you
prefix+bSidebar: full, rail or hidden
prefix+shift+bRight panel: full, mini or hidden
prefix+shift+uStatus board
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
prefix+iHint mode: type a label to open, in capitals to copy
ctrl+clickOpen the path, link or reference under the mouse
ctrl+alt+clickCopy it instead