Skip to content

jacobaraujo7/remote_pi

Repository files navigation

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

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.

Status

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.

About

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.

Topics

Resources

Stars

Watchers

Forks

Contributors