Install on your server
One curl … | bash. Linux gets full support; macOS runs core-only.
Self-hosted mission control for interactive Claude Code — spawn, watch,
and steer a herd of real claude sessions from your browser or
phone, with best-practice guardrails built in. On your own server, on your
own subscription.
$ curl -fsSL https://shepherd.run/install.sh | bash > Edit src/auth/session.ts
rotate refresh token on renew
> Bash bun test ./test/session.test.ts
14 pass · 0 fail (1.2s)
> Read src/auth/cookies.ts
›
What's in the herd
Spawn, watch, and steer a herd of real claude sessions in isolated git worktrees, from your browser or phone.
Scores a JS/TS repo's guardrails — typecheck, lint, tests, CI, house rules — before you point agents at it, turning gaps into an install task.
Before an autonomous run, the agent writes a plan a separate read-only reviewer grills adversarially; only a plan that survives review is released to implement.
The moment a PR's CI goes green, an isolated read-only agent reviews the full diff and posts a verdict; with Auto-Address on, findings flow back to the author until the list is empty.
Distills past sessions' failure signals into proposed house rules; the ones you approve are injected into every new agent in the repo, so lessons compound.
A finished PR lands only when it's open, CI-green, conflict-free, and up to date; one that has fallen behind is rebased and fully re-verified first.
How it works
One curl … | bash. Linux gets full support; macOS runs core-only.
Shepherd readiness-scores its guardrails and turns the gaps into setup tasks.
Watch and steer agents from your browser or phone; merge only what survives plan gate, critic, and the merge train.
Opinionated by design
Shepherd institutionalizes the practices a careful team would otherwise enforce by hand, as per-repo automation — the discipline layer around the sessions, not just more panels.
Every autonomous plan faces an adversarial read-only reviewer before any code is written.
Every PR's full diff is reviewed the moment CI goes green; findings can flow back to the author automatically.
Approved house rules distilled from past failures are injected into every new agent in the repo.
Nothing lands while behind its base — a stale PR is rebased and fully re-verified first.
CI and the pre-push hook enforce linear branches, locale-catalog parity, feature-catalog completeness, and a dead-code / complexity audit.
The defining constraint
Shepherd only drives genuine interactive terminal sessions — it never uses the Agent SDK or claude -p. It observes (reads the terminal and agent status) and steers (injects
keystrokes into the live pane).
“If a feature can't be done by typing into a real terminal, it doesn't ship.”
Runs on your own Claude Max/Pro subscription — or opt into
API-key auth (footing B) in Settings → Session for a
clearly-compliant metered path. Either way these are still genuine
interactive sessions, never claude -p or the Agent SDK.
Self-hosted on your own server.