A mobile companion app for pi-coding-agent. Run the server on your machine, scan the QR code from your phone, and control your coding agent remotely.
One-line install (Linux / macOS):
curl -fsSL https://raw.githubusercontent.com/anthaathi/pi-companion/main/install.sh | bash
The installer will:
~/.pi/ui/pi-server init to set up credentials (first install)~/.pi/ui to your shell PATHOptions:
# Non-interactive (accept all defaults)
curl -fsSL .../install.sh | bash -s -- --yes
# Install without background service
curl -fsSL .../install.sh | bash -s -- --no-service
# Uninstall (removes binary, service, and PATH entry)
curl -fsSL .../install.sh | bash -s -- --uninstall
Manual download:
Grab the latest release for your platform from Releases:
| Platform | Binary |
|---|---|
| Linux x86_64 | pi-server-linux-x86_64 |
| Linux ARM64 | pi-server-linux-aarch64 |
| macOS Apple Silicon | pi-server-macos-aarch64 |
| macOS Intel | pi-server-macos-x86_64 |
| Windows | pi-server-windows-x86_64.exe |
chmod +x pi-server-linux-x86_64 # make executable (Linux/macOS)
./pi-server init
This will prompt you for:
- Username (default: admin)
- Password (used to authenticate from the mobile app)
It creates a config.toml in the current directory.
The server manages a pi binary. Make sure Node.js is installed, then the server can install it for you via the mobile app, or install it manually:
npm install -g @mariozechner/pi-coding-agent
./pi-server
The server starts on port 5454 and prints a QR code in the terminal:
Scan to connect:
[QR CODE]
pi://connect?hostname=mypc&ips=192.168.1.100&port=5454&qr_id=...&server_id=...
y and press Enter)You're connected! You can now create workspaces, start coding sessions, and interact with the pi-coding-agent from your phone.




The config.toml file supports these options:
[server]
port = 5454
host = "0.0.0.0"
[auth]
username = "admin"
password_hash = "..."
access_token_ttl_minutes = 15
refresh_token_ttl_days = 30
[package]
name = "@mariozechner/pi-coding-agent"
# Optional: specify a custom pi binary path
[agent]
pi_binary = "/usr/local/bin/pi"
# Optional: custom session storage
[sessions]
base_path = "~/.pi/agent/sessions"
corepack enable && corepack prepare yarn@4.9.2 --activate)yarn install
yarn start # Expo dev server
yarn android # run on Android
yarn web # run in browser
For direct browser login links, the backend prints http://localhost:8081/connect?... in debug builds and uses the backend server port in release builds. Set PI_UI_WEB_ORIGIN to override the dev web origin if you run Expo web on a different host or port.
yarn web:build # export web assets to dist/
cd backend && cargo build --release # builds with embedded web UI
eas build --platform android --profile preview --local
Requires Java 17 (JAVA_HOME must point to a JDK 17 installation).