@e9n/pi-mobile
PWA mobile app for Pi agents — mounts on pi-webserver at /mobile
Package details
Install @e9n/pi-mobile from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@e9n/pi-mobile- Package
@e9n/pi-mobile- Version
0.3.0- Published
- Apr 26, 2026
- Downloads
- 91/mo · 22/wk
- Author
- e9n
- License
- MIT
- Types
- extension
- Size
- 92.8 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-mobile
PWA mobile app for Pi coding agents. Mounts on pi-webserver at /mobile, giving you mobile control over any Pi agent.
Screens
| Tab | Description |
|---|---|
| 💬 Chat | Send messages with streaming responses via SSE. Type /commands to invoke extension commands, skills, or prompt templates |
| 📊 Status | Agent health, system metrics, uptime, tool count |
| 📋 Tasks | td issue list with filters, create/update tasks |
| 📁 Files | Browse workspace files, view content |
| 📜 Logs | Live log stream with level filters |
| ⏰ Cron | Manage scheduled jobs — toggle, run, view schedule |
| 🧠 Skills | Browse registered tools with search |
| 👥 CRM | Contact list with search (via pi-personal-crm) |
| 📅 Calendar | Upcoming events (via pi-calendar) |
| 🧩 Extensions | View installed extensions and their tools |
| ⚙️ Settings | Connection config, API key, theme |
Setup
1. Install the extension
Add pi-mobile to your Pi extensions:
# Symlink to extensions directory
ln -s ~/Dev/pi-mobile ~/.pi/agent/extensions/pi-mobile
# Install dependencies
cd ~/.pi/agent/extensions/pi-mobile
npm install
Or add to settings.json:
{
"extensions": ["~/Dev/pi-mobile"]
}
2. Ensure pi-webserver is running
pi-mobile mounts on the shared pi-webserver. Make sure pi-webserver is enabled.
3. Access the app
http://localhost:<webserver-port>/mobile
Install as PWA
iOS (Safari)
- Open
/mobilein Safari - Tap Share (📤) → Add to Home Screen → Add
Android (Chrome)
- Open
/mobilein Chrome - Tap ⋮ → Install app → Install
Remote Access via Tailscale
- Install Tailscale on both devices
- Access via Tailscale hostname:
http://your-machine.tail12345.ts.net:<port>/mobile
Important: Set an API key when binding to external interfaces:
{
"pi-webserver": {
"bind": "0.0.0.0",
"apiKey": "your-secret-key"
}
}
Architecture
pi-mobile/
├── src/
│ └── index.ts # Extension + API endpoints + SSE broadcasting
├── public/
│ ├── app.html # SPA — 11 Preact screens, dark theme (no build step)
│ ├── manifest.json # PWA manifest
│ └── sw.js # Service worker
├── package.json
├── tsconfig.json
├── AGENTS.md
└── README.md
Tech Stack
- Preact + HTM from esm.sh CDN — no build step
- CSS Custom Properties — dark mode theming
- Service Worker — offline caching (stale-while-revalidate)
- SSE — real-time agent events and log streaming
- pi-webserver — shared HTTP server with event-bus mount system