Voice control for Herdr.
Stay on top of your coding agents without being glued to the desk or squinting at a terminal on your phone
Herdr Call lets you check on and steer your Herdr coding agents when your agents are waiting on an answer while you're away from the keyboard, by putting you on a live private call with a voice agent that can manage and steer all your Herdr sessions and get a waiting agent moving again with one spoken instruction.
✓ 100% free and open source ✓ Tailnet‑only, never public ✓ Built for Herdr coding agents
⭐ Used by top developers
Keep the work moving while you're away from the keyboard
An agent that finishes, stalls, or hits a question gets your answer from the next room or the walk outside. You come back to progress you already approved instead of a wall of terminal output to catch up on.
Choose between walking back, screen-sharing your desktop, watching notifications — or talking to your session
| Herdr Call | Walking back | Remote desktop | Custom scripts | |
|---|---|---|---|---|
| Free software | ✅ | ✅ | ✅ | ✅ |
| Hands-free | ✅ | ❌ | ❌ | ❌ |
| Works from any tailnet device | ✅ | ❌ | ✅ | ❌ |
| Live agent status by voice | ✅ | ❌ | ❌ | ❌ |
| Sends instructions to agents | ✅ | ✅ | ✅ | ❌ |
| Reshapes tabs and panes | ✅ | ✅ | ✅ | ❌ |
| Spoken confirmation for commands | ✅ | ❌ | ❌ | ❌ |
| Never leaves your tailnet | ✅ | ✅ | ❌ | ✅ |
| No screen required | ✅ | ❌ | ❌ | ✅ |
Keep your hands and eyes free. Herdr Call carries the conversation, your Herdr session does the work, and nothing crosses the public internet.
Ask what your agents are doing. Steer them with your phone in your pocket.
📈 Hear the whole session at a glance
Every workspace, tab, pane, and agent is listed with its live state. Ask about one agent and get a spoken summary of what it just did, not a raw terminal dump.
⚡ Unblock an agent the moment it stalls
Send an instruction by voice, have the call wait until the agent is idle, blocked, or done, and get a notification when it is. The queue keeps moving while you make coffee.
💬 Run commands with a spoken yes
Anything that touches a terminal directly — commands, keystrokes, closing panes — is read back to you word for word first. Confirmations are single-use and expire in 60 seconds.
Set up your first call in three steps
1️⃣Install and startRun herdr plugin install eliasstravik/herdr-call && herdr plugin action invoke start --plugin herdr-call. The plugin builds itself and opens its tab. |
2️⃣Paste your ElevenLabs keyPaste your key when the Herdr Call tab asks — first run only. Everything else configures itself. |
3️⃣Call your agentThe pane prints your private call URL and a QR code. Scan it with your phone and start talking to your session. |
Get everything included, free
For developers who run coding agents in HerdrFree ✓ 26 voice tools for status, steering, and layout ✓ Auto-provisioned ElevenLabs agent and prompt ✓ Spoken two-phase confirmation for guarded actions ✓ Loopback-only server with short-lived tokens ✓ Locked to your own tailnet login by default ✓ Community support on GitHub |
| Start your first call |
Get your questions answered
Do I need to know how to code?
No. The plugin builds itself on install, and the only thing you ever type is your ElevenLabs API key, once, when the call pane asks for it. Your tailnet hostname, the HTTPS mapping, and the voice agent all configure themselves.
How do I return to the Herdr Call tab?
Leave the tab running and it will survive normal Herdr detach and reattach. If you close it, or want to focus it again, run:
herdr plugin action invoke start --plugin herdr-call
The command focuses the existing tab or opens a new one. The
getting-started guide also includes an optional
Ctrl+B, Shift+C shortcut.
What permissions does the ElevenLabs key need?
Only the ElevenAgents write permission — create a key with just that scope and leave everything else off. The plugin uses it to provision and update its voice agent and to mint short-lived call tokens.
Is the call reachable from the internet?
No. The server binds to loopback only, and you reach it through Tailscale Serve — TLS and a verified tailnet identity in front of 127.0.0.1, never Funnel. By default only your own tailnet login may drive the call; add teammates with allowed_tailnet_users, or set auto_serve = false to keep the call local-only. SECURITY.md covers the full model.
Can the voice agent run commands on my machine?
Only after you say yes. Direct terminal actions are prepared first, read back to you word for word, and executed only on spoken confirmation. Each confirmation is single-use and expires in 60 seconds.
Where does my ElevenLabs API key live?
The pane saves it to config.toml inside the plugin's config directory, server-side, readable only by your user. The browser only ever receives a short-lived conversation token, never the key.
Do I have to configure anything in the ElevenLabs dashboard?
No. The agent's prompt, model, and all 26 client tools are created and kept up to date from src/agent/prompt.md and src/shared/tools.ts.
What about prompt injection from terminal output?
Terminal and agent output is wrapped in untrusted-content markers the voice model is instructed to treat as inert, and every risky action still needs your spoken yes. SECURITY.md describes the residual risk honestly.
What does it cost?
Herdr Call is free and MIT licensed. You pay ElevenLabs for the voice minutes and models you use, and Tailscale's personal plan covers the tailnet.
Take your first call in five minutes
Your session is one install and one pasted key away from answering the phone. Herdr Call relays the words. Your agents do the work.
✓ 100% free and open source ✓ Tailnet‑only, never public ✓ Built for Herdr coding agents
⭐ Used by top developers
{
"request": {
"method": "GET",
"url": "https://api.eliasstravik.com/projects/herdr-call"
},
"response": {
"status": "200 OK",
"headers": {
"content-type": "application/json; charset=utf-8",
"x-powered-by": "one person + systems"
},
"body": {
"name": "herdr-call",
"description": "Voice control for Herdr",
"language": "TypeScript",
"stars": 3,
"forks": 0,
"repo": "https://github.com/eliasstravik/herdr-call",
"readme": "https://github.com/eliasstravik/herdr-call#readme"
}
}
}