Self-hosted · open source · MIT

Your coding agents.
Wherever you are.

wherdr is a web app and phone PWA for the agents running in Herdr on your machines — Claude Code, Codex, omp and more. Read their work, answer their questions, take over their terminal. From your laptop or your pocket, over your own private network.

curl -fsSL https://wherdr.dev/install | sh

Linux + Docker · macOS via Node.js · needs Herdr ≥ 0.9.1

Works with
  • Claude Code
  • Codex
  • omp
  • and every agent Herdr recognizes

01 Features

A full workspace on a computer.
A companion in your pocket.

Same Herdr session, same agents, nothing copied. On a computer wherdr can replace the terminal client day to day; on a phone it follows your agents while you are away.

1.1 Conversation · terminal

The real transcript. The real terminal.

wherdr reads each agent's own transcript — Claude Code, Codex, omp — and renders it as clean Markdown with grouped tool calls, images and search. Switch to the live terminal (xterm.js) to take over. Reading never resizes a pane.

  • Composer with queue, attachments and slash commands
  • Model and effort pickers, for the current session only
  • Copy or run the commands the agent proposes

1.2 Phone · notifications

Your turn? Answer in one tap.

Install wherdr on your phone as a PWA. A push tells you when an agent finishes or needs you, with its question and options. Answer right from the agent list, without opening the conversation.

  • Web Push when an agent is done or blocked, and for herdr notification show
  • Do not disturb, per device or for all
  • Offline reading of recent conversations

1.3 herdr-projects

A coordinator, its threads, one board.

With the herdr-projects plugin, a coordinator conversation runs parallel threads, each in its own Git worktree. wherdr groups them under their project and shows the project's TASKS.md as a live board: to test, to decide, in progress, blocked, backlog — with one-click replies.

  • Threads live: state, progress, report
  • Thread slots per machine, across projects
  • wherdr never writes TASKS.md: buttons message the coordinator
1.4

Split panes, live

Herdr's real layout on a computer: every pane live, drag to move, drag a divider to resize.

1.5

Several machines

Agents of the SSH machines registered in Herdr appear in their own section. Same features, remote.

1.6

Claude & Codex quotas

5-hour window and week, with reset times, for every online machine.

1.7

New agent, new worktree

Pick an agent, a folder, optionally a Git worktree and branch, and queue the first message.

1.8

Changes view

Git status and diff of an agent's working folder, worktree management.

1.9

Keyboard first

Global search, next agent, new tab, pane swaps, 1–9 to answer. Everything without the mouse.

1.10

Passkey lock

Face ID, Touch ID, Windows Hello, Android. Sessions slide, devices can be locked remotely.

1.11

Themes, compact list

wherdr Titanium, herdr.dev, Herdr's own themes or follow Herdr. English and French.

1.12

Herdr plugins

Actions declared by your installed Herdr plugins show up in the menus.

02 How it works

Next to Herdr. Never in between.

wherdr runs on the same machine as the Herdr server. It uses Herdr's local socket API and CLI, reads the agents' transcript files, and serves the app to your devices through your private network. Your other computers join through Herdr's SSH machines.

→ Gateway

Nitro server: API, WebSockets, Web Push and lock, on 127.0.0.1:7683.

→ Read-only

Transcripts of ~/.claude, ~/.codex, ~/.omp are read, never written.

→ Passive client

Notifications come from Herdr's client socket without resizing anything.

03 Security

It is a shell on your machine.
It is treated like one.

Anyone who reaches wherdr can drive your agents as your user. So it stays on your private network, behind a passkey, with nothing in the cloud.

[ NET ]

Private network only

wherdr listens on 127.0.0.1. Reach it from your devices through Tailscale Serve — never a public route, port forward or tunnel.

[ KEY ]

Passkey lock

Once a passkey exists, the API, images and WebSockets need an unlocked session. Lock every device in one tap.

[ LOCAL ]

Nothing in the cloud

No account, no telemetry, no hosted service. wherdr talks to the Herdr socket on your server and reads transcripts read-only.

[ CSP ]

Strict by default

Host allow-list, Origin checks on every write and WebSocket, strict Content Security Policy, no framing.

Never port forwarding · public reverse proxy · Cloudflare Tunnel · ngrok · tailscale funnel

04 Install

One command on your server.

With Herdr running, on the always-on Linux machine that hosts your agents (a Raspberry Pi works). The script checks Docker and Herdr, creates ~/wherdr, and starts the container on 127.0.0.1. No sudo, and it asks before replacing anything. Read it first.

your server · sh
curl -fsSL https://wherdr.dev/install | sh
  1. Run it as the user who runs Herdr. It writes ~/wherdr/docker-compose.yml and .env, then docker compose up -d.
  2. Open http://localhost:7683 on that machine.
  3. Phone: tailscale serve --bg --https=7683 http://127.0.0.1:7683, put the address in APP_URL, install the app from the browser and enable notifications.
  4. Lock it: Settings → Security → Enable passkey lock.

Full guide, configuration and troubleshooting in the README.

05 FAQ

Questions.

Follow your agents from anywhere.

Free and open source. Watch the repository to hear about new releases.

wherdr

Unofficial project, not affiliated with or endorsed by Herdr, Anthropic or OpenAI. Claude, Claude Code, Codex and other product names are trademarks of their respective owners.