About

Why Perch exists.

Agent CLIs are already good. Running several of them at once is the part that still falls apart.

Why

Each agent is a real terminal, not a chat transcript. That is where its tools, scrollback, and approvals live.

When you run several, the scarce resource is not tokens or CPU. It is your attention. You need to know who is waiting without reading every pane.

Model access should be local and bounded. A gateway should connect an agent to your providers without taking ownership of the agent.

Principles

Real terminals

ConPTY, scrollback, job objects. No emulation layer between you and the agent.

Evidence, not guesswork

Transcript, hooks, and the visible screen have to agree before status concludes.

Attention first

The interface exists to show who needs you, not to keep a second transcript.

Boundaries

Per-pane profiles; no global config rewrite; no silent fallback; the desktop magpie is left alone.

Portable and private

One executable, no account, no Perch telemetry. Local data stays local.

Open source

MIT. The gateway engine is magpie, also MIT.

Data & privacy

Perch has no account system and sends no telemetry of its own. Settings, seat records, hook events, logs, the gateway engine, keys, and agent config sandboxes live in Perch's own data directories. Agent CLIs and magpie have their own policies.

Acknowledgements

Perch is built on other people's careful work.

License

Perch is MIT © 2026 yu7dan. Third-party components and reference implementations are listed in THIRD-PARTY.md.