jacobaraujo7
remote_pi
Dart✨ New

Control your Pi coding agent from your phone. Pair with a one-time QR code and chat with your local agent — even when you're away from your computer.

Last updated Jul 5, 2026
93
Stars
26
Forks
4
Issues
0
Stars/day
Attention Score
49
Language breakdown
No language data available.
Files click to expand
README

Remote Pi logo

Remote Pi

Control your Pi coding agent from your phone. Pair with a one-time QR code and chat with your local agent — even when you're away from your computer.


Links

  • Official site
  • Package documentation
  • GitHub

Downloads

| Platform | Status | |---|---| | Google Play (Android) | Get it on Google Play | | App Store (iOS) | Download on the App Store | | APK (sideload, Android) | GitHub Releases |

What's in this repo

| Package | Stack | Role | |---|---|---| | app/ | Flutter (iOS / Android) | Mobile client | | pi-extension/ | Node + TypeScript | Pi extension exposing /remote-pi | | relay/ | Rust + Tokio | Stateless WebSocket relay | | site/ | NextJS | Landing page + legal pages |

Architecture

Flutter app ──wss──► Relay (Rust) ◄──wss── Pi extension (Node)
                                                  │
                                           Local Pi process
                                                  │
                                           UDS broker (local mesh)
                                                  │
                                           Other agents on the same machine
  • Pairing via short-lived QR code; peers persisted in Keychain (mobile) and ~/.pi/remote/ (desktop)
  • TLS in transit on the WebSocket connection
  • Ed25519 pairing authentication — only paired devices can route messages through your peer slot on the relay (challenge-response handshake)
  • The relay forwards opaque ciphertext as far as routing is concerned, but the payload itself is not end-to-end encrypted in the current version — see relay/README.md for the security trade-offs

Local agent mesh

When multiple Pi agents run on the same machine, they discover each other through a Unix Domain Socket broker managed by the extension. One agent wins the leader election and binds the socket; the others connect as clients. After that, any agent can send a message or make a request to any other agent by name — no relay, no network, no extra config.

Two LLM-facing tools are exposed in the Pi chat:

  • agent_send — fire-and-forget message to another local agent
  • agent_request — request/response with timeout
This lets you set up local multi-agent workflows (e.g. a backend agent asks a frontend agent for help) entirely on your machine, in parallel with the remote mobile pairing.

Relay

A free community relay is available at:

wss://relay-rp1.jacobmoura.work

It's enough to get started, but the relay operator can see the content of your messages and is a single point of trust for routing. **For sensitive work, we strongly recommend running your own relay** — it's a single Docker command and the only thing your traffic ever touches is your own infrastructure.

Full security trade-offs and the self-hosting guide live in relay/README.md.

Getting started

Install the Pi extension in any project where Pi runs:

pi install npm:remote-pi

Then in the Pi chat, run:

/remote-pi

The setup wizard walks you through agent name, session name, and relay choice, then prints a QR code. Scan it with the Remote Pi mobile app and you're paired.

Statu

The MVP is functional. Planning notes and roadmap live in plan/.

License

License is per-package — see each subproject's LICENSE file (the pi-extension is MIT). A repository-wide license decision is pending.

🔗 More in this category

© 2026 GitRepoTrend · jacobaraujo7/remote_pi · Updated daily from GitHub