Tether: A Locally-First AI Agent Desktop Workstation Built on Pi
Most AI coding tools are cloud services that own your session data and offer limited control over agent behavior. Tether demonstrates that an open-source ecosystem like Pi can be wrapped into a local-first desktop tool where the security boundary is enforced by the type system, the agent process is crash-isolated, and every file mutation is checkpointed for reliable undo — a combination that cloud-hosted alternatives rarely deliver.
Tether bundles model invocation, terminal commands, diff review, and session history into a single Electron desktop application where all data stays on disk and model requests go directly to the configured provider. The architecture isolates the renderer process from Node.js entirely through a typed IPC contract, while the agent runs in an independent child process so a crash never takes down the UI or silently replays unfinished commands. File changes are tracked as patches with checkpoints, making a single `/undo` command sufficient to roll back an entire turn of modifications. Four permission modes — plan, ask, auto, and full — let developers dial in how much autonomy the agent gets, backed by macOS Seatbelt sandboxing. Skills, MCP, and hooks are inherited from the Pi runtime rather than reimplemented, and team conventions can be codified as skill files instead of living in chat logs.
Typed IPC contracts turn Electron's notorious security surface into a compile-time enforcement problem — if a capability isn't in the interface, the renderer literally cannot request it, which is stronger than any runtime permission check.
Running the agent in a child process rather than the main process is the architectural decision that makes crash recovery possible; a single misbehaving model invocation can't take down the entire application.
The patch-and-checkpoint approach to file mutations is what makes undo feasible in an agent context. Whole-file rewrites would make rollback prohibitively expensive and imprecise.
Codifying team conventions as skill files rather than relying on chat history or documentation is an underappreciated pattern — it makes agent behavior reproducible and version-controllable across a team.