Remotely access agents, terminals, code editor, localhost ports and browser DevTools from your phone.
You don't move your workflow to your phone. You bring your existing machine as-is — desktop, laptop, Mac Mini, VPS, whatever — and access it from iOS, Android, or the web.
| Repository | What's inside |
|---|---|
| app | iOS / Android / web client |
| packages | shellular CLI host agent + @shellular/protocol |
| server | WebSocket relay server |
- Access your actual local repos — even with uncommitted changes
- Run and interact with AI agents — Claude Code, Codex, OpenCode, Pi & GitHub Copilot CLI, in a proper UI (not inside a terminal)
- Open localhost apps and dev servers running on your laptop or VPS, from your phone
- Browser DevTools — JS Console, Inspect, Network tab — copy error logs straight to your coding agents to fix
- Plus terminal access if you need it
- File browser & editor — browse, edit, and diff files with CodeMirror 6
- System monitoring — CPU, memory, and battery dashboards
- Zero-config localhost access — open the dev servers and apps running on your machine straight from the app, no port forwarding or tunnel setup
- Run
npx shellularon your dev machine - Scan the QR code in the app (one time thing)
- Approve your device in the CLI (one time thing)
That's it.
- End-to-end encryption — all messages encrypted with libsodium
- QR code pairing — the key is exchanged out-of-band and never travels over the network
- Traffic flows via TLS-encrypted WebSockets
- Device approval required — every unknown client must be approved before it can connect
- Open-source relay server — it only relays encrypted traffic, it cannot read it
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ app │ E2E │ server │ E2E │ packages/cli │
│ (phone/web) │◄──────►│ (relay, wss) │◄──────►│ (host agent on │
│ │ │ │ │ your dev box) │
└─────────────┘ └──────────────┘ └─────────────────┘
The relay never sees plaintext — it only forwards libsodium-encrypted frames between the two paired endpoints.
npx shellularScan the QR code printed in the terminal with the Shellular app to connect. See the CLI README for daemon mode, client approval, and all available flags.