remote_pi
從手機控制您的樹莓派編碼代理。透過一次性QR碼配對,並與本地代理聊天,即使您離開電腦也能做到。
- 星標
- 380
- 分支
- 96
- 最近推送(UTC)
- 2026年9月18日
- 專案狀態
- 未封存
原始 README
以下為英文專案原文快照,最新內容請造訪 GitHub。
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 — https://remote-pi.jacobmoura.work
- Package documentation — https://pi.dev/packages/remote-pi?name=remote-pi
- GitHub — https://github.com/jacobaraujo7/remote_pi
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 | WebSocket routing + signed mesh membership storage |
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) - Ed25519 authentication — the Relay handshake proves possession of the connection key; App↔Pi pairing is enforced by the endpoints. For Pi↔Pi routing, the current Relay permits a route when a correctly signed Owner blob lists both Pi keys; that check does not prove the Owner paired with or controls either Pi
- TLS protects traffic in transit, but current payloads are not E2E; see
relay/README.mdfor the exact trust boundary
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. For targets
on that same machine, agents use the opaque addresses returned by list_peers —
no relay, no network, no extra config.
Three LLM-facing tools are exposed in the Pi chat:
list_peers— lists local and cross-PC addresses available to the agentagent_send— sends a unicast message and waits for a delivery ACK. Compatible ACK values arereceived,busy,denied, andtimeout; current brokers returnreceived,denied, ortimeout, whilebusyonly indicates a dropped message from an old broker leader that must be restarted before resending. Broadcast issentwith no ACK. Asynchronous content replies usereagent_request— request/response with timeout, available only as deprecated legacy behavior
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.
Recommended companion: @eko24ive/pi-ask
pi install npm:@eko24ive/pi-ask
With pi-ask installed, the agent's ask_user clarification prompts (structured
questions with options, multi-select, and previews) render natively in the
mobile app — answer from your phone and the flow resolves on the desktop.
Without it, the agent simply asks in plain chat text (also answerable from the
phone, just unstructured). Remote Pi works either way; pi-ask is optional.
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.
分類
所在榜單
如何選擇適合專案的儲存庫?
先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。
- 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
- 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
- 使用前在 GitHub 確認 README、授權條款與 Issues。
來源與維護
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗