Every herdr space becomes a private room, every tab a thread. Your agents' replies, "done" and "needs you" reach your phone; permission prompts come with Allow and Deny; a new thread opens a new tab. Discord and Telegram are built in, and any chat app plugs in as an adapter.
$ npm install -g @thl-ai/herdr-link
then herdr-link init: it asks for a bot token and sets up the rest.
Or let your coding agent do it. Tell it:
Read https://thl-ai.github.io/herdr-link/install.md and install herdr-link for me.
pnpm testsrc/routes.ts. All 67 tests pass.herdr-link runs next to herdr on your computer. herdr stays the source of truth; the chat app becomes a remote for it.
Claude Code, Grok or any program, each in its tab, reporting working, done or needs you.
Keeps rooms and threads in step with herdr, types your messages into the right agent, brings their replies back through one shared hook.
Push notifications, history and buttons from the app on your phone. Discord and Telegram built in.
Everything you'd walk back to your desk for.
Write in a tab's thread: it is typed into that tab's agent. Screenshots and files land beside it.
Permission prompts arrive with Allow, Allow always and Deny, wired to each agent's real keys.
When the agent asks with a form, each question comes with its options as buttons, or write your own answer.
A long turn keeps one message up to date: how long it has run and what the agent is doing now.
A bar in the Herdr window shows the link is up; at the desk, messages arrive without a push.
The agent's final answer, or "โ Done" and "โ ๏ธ Needs you", as messages your phone pings you for.
A new thread opens a new tab with the agent you pick; a task in your private chat with the bot starts one in any space.
Your private chat with the bot keeps a live dashboard of every agent, plus /status, /screen and /space new.
Several panes in one tab, spaces on other herdr machines, several computers: each stays clear.
Adapters are separate programs, in any language, speaking a small JSON-RPC protocol on stdin and stdout. The bridge does everything herdr-specific; an adapter only knows its platform. Discord and Telegram are two of them.
// bridge โ adapter {"method": "message.post", "params": { "place": {"kind": "thread", "thread": "45"}, "text": "๐ Permission: approve Bash: pnpm test", "actions": [{"id": "prompt:3:allow", "label": "Allow"}, {"id": "prompt:3:deny", "label": "Deny"}]}} // adapter โ bridge: the owner pressed Allow {"method": "action.pressed", "params": { "place": {"kind": "thread", "thread": "45"}, "message": "9001", "action": "prompt:3:allow"}}
Whoever can write in those threads can run code on your machine, so herdr-link is built for one owner.
On macOS and Linux, with Node 24. herdr-link doctor --fix checks and repairs
the setup, herdr included.