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.

One PiNomad run streaming live to three clients side by side: the Mac app on the left, an iPhone in the center, and the web client on the right.
One run, three clients: Mac app (left), iPhone via iPhone Mirroring (center), web (right). The host is a Linux box on the same tailnet.

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.

Terminal
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 @name mention, 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 usual mcpServers format.
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.md and skills from ~/.agents and the project, on every request.