PiNomad
A self-hosted coding agent built on Pi Durable. The agent runs on your own machine; the Mac app, the web client, and the iPhone app all attach to the same runs.
Status: early and moving fast. Pi Durable is itself experimental, and the host and its clients must speak the same protocol major version.
How it works
Your agent, your machine, any screen
-
Your machine does the work
The host runs on a Mac mini, a Linux box, or a VPS, and the agent uses that machine's shell and repositories.
-
Runs survive crashes and restarts
Pi Durable checkpoints every model call and tool call, so a restarted host picks up where it stopped.
-
Clients are just windows
Start a task at your desk, then check on it or steer it from your phone. Devices pair with a one-time QR code and talk to the host over an end-to-end encrypted channel: directly on your LAN or tailnet, or through a relay that only sees ciphertext.
Quick start
Up and running in three commands
The host needs Node 25+ on macOS or Linux.
pinomad host uses the models and credentials you set up in pi
(~/.pi/agent). Haven't set up pi yet? pinomad host --faux "hi" runs a scripted fake
model so you can click around.
npm i -g pinomad
pinomad host # uses the models and credentials set up in pi
pinomad link # in another terminal: prints a web client link
Clients
Pick up the same run anywhere
-
Web
Open app.pinomad.si, or the web client your host serves itself (
pinomad link). Any modern browser. -
macOS
Signed DMG from GitHub Releases; updates itself.
Apple silicon -
iOS
Pairs with your host by scanning a one-time QR code.
Internal TestFlight only for now -
Linux, Windows
Use the web client.
Features
What the agent can do
The agent has pi's four tools (read, bash, edit, write) plus:
- Projects and worktrees
- In a Git repo each conversation works in its own worktree and branch, so your checkout stays untouched.
- Forks
- Branch off from a message and keep both lines going.
- Subagents
- Hand self-contained tasks to subagents that run in parallel.
- Named agents
-
Reusable roles you delegate to with an
@namemention, optionally pinning their model and thinking level. - Questions, not approvals
- Tools run without approval prompts; when the direction is unclear, the agent asks 1–4 multiple-choice questions.
- codemode
- The model writes JavaScript that calls other tools in a QuickJS sandbox; only the script's output enters the context.
- MCP
-
Servers configured in
~/.agents/mcp.json, in the usualmcpServersformat. - Images
- Paste, drop, or pick up to 4 images per message in the web and desktop composer.
- AGENTS.md and skills
-
Reads
AGENTS.md/CLAUDE.mdand skills from~/.agentsand the project, on every request.