9Remote โ Terminal in Your Pocket
Want to code from bed? Fix bugs while having coffee? Deploy while on vacation?
Your Mac/Linux/Windows terminal, remote desktop, and file explorer โ accessible from any phone or browser, anywhere, instantly.
๐ Quick Start โข ๐ Comparison โข ๐ก Features โข ๐ Website โข ๐ Docs โข ๐ฌ Facebook
๐ง Development Status
9Remote is currently in active development.
The source code is not open-source yet. If this project gets enough โญ support from the community, we will fully open-source it so everyone can contribute and self-host.
โญ Star this repo to help us reach the open-source milestone!
๐ค Why 9Remote?
Remote access today is painful:
- โ SSH is a hassle โ firewall rules, port forwarding, SSH keys, IP whitelisting
- โ VPN is overkill โ complex setup just to check a terminal
- โ ngrok / tunnels expire โ lose connection, restart everything
- โ TeamViewer is slow โ high latency, desktop-only, paid for commercial use
- โ Chrome Remote Desktop โ no terminal, no file explorer, no mobile
- โ Termius โ SSH-only, no remote desktop, no browser access
9Remote solves all of it:
- โ One command โ install, scan QR, done in 30 seconds
- โ Auto tunnel โ Cloudflare tunnel starts automatically, no port forwarding
- โ All-in-one โ terminal + remote desktop + file explorer + code editor in one app
- โ Works on phone โ full workspace from your browser, under 50ms latency
- โ Persistent sessions โ PTY daemon survives server restarts
- โ Pair Device security โ only approved devices can connect, zero signup friction
โก Quick Start
Install globally:
npm install -g 9remote 9remote
๐ Scan the QR code on your phone โ pair your device โ you're in.
That's it! No config, no firewall rules, no signup.
Ready in 30 seconds. Works on macOS, Linux, and Windows.
๐ 9Remote vs Other Remote Solutions
| Feature | 9Remote | Claude Remote | TeamViewer | Chrome Remote | Termius |
|---|---|---|---|---|---|
| Zero Config | โ | โ | โ | โ | โ |
| Terminal Access | โ | โ | โ | โ | โ |
| Remote Desktop | โ | โ | โ | โ | โ |
| File Explorer | โ | โ | โ | โ | โ |
| Code Editor | โ | โ | โ | โ | โ |
| Git Integration | โ | โ | โ | โ | โ |
| Mobile Optimized | โ | โ | โ | โ | โ |
| Browser-Based | โ | โ | โ | โ | โ |
| QR Login | โ | โ | โ | โ | โ |
| Auto Tunnel | โ | โ | โ | โ | โ |
| Persistent Sessions | โ | โ | โ | โ | โ |
| Multi-Device Sync | โ | โ | โ | โ | โ |
| Push Notifications | โ | โ | โ | โ | โ |
| AI Integration | โ | โ | โ | โ | โ |
| No Port Forwarding | โ | โ | โ | โ | โ |
| No Account Required | โ | โ | โ | โ | โ |
| TOTAL | 16 / 16 | 11 / 16 | 7 / 16 | 5 / 16 | 7 / 16 |
๐ 9Remote: All-in-one solution with 16/16 features.
โจ Key Features
| Feature | What It Does | Why It Matters |
|---|---|---|
| ๐ฅ๏ธ Remote Terminal | Full PTY shell via WebSocket | Code like you're sitting at your Mac |
| ๐ฑ๏ธ Remote Desktop | Live screen streaming via WebRTC | View & control your machine from phone |
| ๐ File Explorer | Browse, upload, download files | Manage files without SSH/SFTP |
| ๐ป Code Editor | Built-in editor with syntax highlighting | Quick edits without opening IDE |
| ๐ Git Integration | Run git commands with visual status | Commit/push from your phone |
| ๐ฑ Mobile Optimized | Touch-friendly UI, gesture controls | Full workspace on a 6" screen |
| ๐ QR Login | One-time 30-min key, scan to connect | Zero-friction mobile access |
| ๐ Auto Tunnel | Cloudflare tunnel, no port forwarding | Works behind any NAT/firewall |
| ๐ Persistent Sessions | PTY daemon survives restarts | Long-running commands stay alive |
| ๐ Multi-Device Sync | Same session across phone/tablet/laptop | Switch devices without losing context |
| ๐ Push Notifications | Build finished? Get notified | Never miss a critical event |
| ๐ค AI Integration | Works with Claude Code, Codex, OpenClaw | Code with AI from anywhere |
| ๐ Local Sites Proxy | Expose localhost:3000 to phone | Test dev servers on mobile instantly |
| โก Low Latency | <50ms typical, WebRTC for desktop | Feels like local |
| ๐ Pair Device | Approve each device before it connects | No unauthorized access, full control |
| ๐ No Account Required | Machine ID + QR key, zero signup | Privacy-first design |
๐ฑ Available Platforms
|
๐ป CLI npm install -g 9remote macOS โข Linux โข Windows |
๐ฅ๏ธ Desktop App Tauri native app macOS โข Windows โข Linux |
๐ Web Client 9remote.cc Any modern browser |
๐ฑ Mobile App iOS โข Android React Native / Expo |
๐ฏ Use Cases
Case 1: "Code from bed"
Problem: It's 11 PM, you remember a bug but laptop is in another room.
Solution:
1. Open 9remote app on phone
2. Scan QR (or use saved session)
3. Open terminal โ fix bug โ git push
4. Sleep well ๐ด
Case 2: "Fix bugs at a cafe"
Problem: Production is down. You only have your phone and a bad cafรฉ Wi-Fi.
Solution:
1. Connect to your home/office Mac via 9remote
2. Tail logs in terminal
3. Edit config in built-in editor
4. Deploy โ crisis averted
Case 3: "Deploy while on vacation"
Problem: Client needs a hotfix. You're on the beach.
Solution:
1. Phone โ 9remote โ your dev machine
2. git pull โ build โ deploy
3. Back to the beach in 5 minutes ๐๏ธ
Case 4: "On-call engineer"
Problem: PagerDuty alert at 3 AM. Don't want to power on laptop.
Solution:
1. Push notification โ tap โ 9remote opens
2. Terminal + remote desktop ready
3. Diagnose + restart service from bed
4. Resolve incident without getting up
๐ Setup Guide
๐ Installation Options
Option 1 โ NPM (recommended)
npm install -g 9remote 9remote
Option 2 โ Desktop App
Download from 9remote.cc/download โ native app with system tray integration, auto-start on boot, and background mode.
Option 3 โ Mobile App
- iOS: App Store โ "9Remote"
- Android: Google Play โ "9Remote"
๐ First Run & QR Login
On first run, 9Remote generates two keys:
- Permanent Key โ stored locally, tied to your machine ID, used for trusted devices
- One-Time Key โ 30-minute temporary key, used for the QR code shown in terminal
Connect from phone:
- Run
9remoteon your Mac/Linux/Windows machine - A QR code appears in the terminal
- Open 9Remote app (or 9remote.cc) on your phone
- Scan the QR โ connected instantly
Keys are never stored on our servers after the session ends.
๐ฑ๏ธ Remote Desktop Setup (macOS)
Remote Desktop requires two system permissions on macOS:
- Screen Recording โ
System Settings โ Privacy & Security โ Screen Recording โ enable Terminal (or 9Remote Desktop app) - Accessibility โ
System Settings โ Privacy & Security โ Accessibility โ enable Terminal (or 9Remote Desktop app)
Then enable in 9Remote:
TUI menu โ Remote Desktop โ Toggle ON
Performance:
- Adaptive framerate: 60ms active / 400ms idle
- Tile-based diff rendering (only changed regions sent)
- WebRTC DataChannel for minimal latency
๐ Local Sites Proxy
Expose your local dev servers (e.g. localhost:3000, localhost:5173) to your phone automatically.
9Remote auto-detects running ports and proxies them:
http://localhost:3000 โ https://<tunnel>/proxy/3000/
http://localhost:5173 โ https://<tunnel>/proxy/5173/
Perfect for:
- Testing responsive design on real devices
- Sharing WIP builds with clients
- Mobile debugging without USB cable
โจ๏ธ CLI Commands
| Command | Description |
|---|---|
9remote | TUI mode โ interactive menu with QR code |
9remote ui | Web UI mode โ opens browser dashboard at localhost:2208 |
โ Frequently Asked Questions
๐ Is 9Remote secure?
Yes. 9Remote uses a Pair Device approval system โ every new device must be explicitly approved by you before it can access the host. Plus:
- No open ports on your machine (Cloudflare tunnel, outbound-only)
- Keys are never stored on our servers after the session ends
- No terminal output, files, or screen data is collected
- One-time QR keys expire in 30 minutes
- Pending/rejected devices can be managed anytime from the TUI menu
๐ฐ Is it free?
Yes, during the development phase. 9Remote is free to use. No signup, no credit card.
Once we open-source, it will remain free forever (MIT license planned).
๐ฆ When will it be open-source?
When the project reaches enough โญ GitHub stars to prove community interest.
We want to make sure there's a real community before committing to open-source maintenance. Star this repo to help us hit the milestone faster!
๐ Do I need to open any ports?
No. 9Remote uses Cloudflare Quick Tunnel โ outbound connection only. Works behind:
- Home NAT routers
- Corporate firewalls
- Mobile hotspots
- VPNs
๐ด Does it work offline / on LAN only?
Yes. 9Remote includes a LocalFirstAdapter that races LAN vs tunnel connection and uses whichever is faster. If phone and host are on the same Wi-Fi, traffic stays local.
๐ค Can I use AI coding tools through 9Remote?
Yes! 9Remote works seamlessly with:
- Claude Code
- OpenAI Codex CLI
- Cursor
- OpenClaw
- Any CLI tool that runs in a terminal
Run them on your host machine, access them from your phone. Combined with 9Router, you get free AI coding from anywhere.
๐ฅ๏ธ What platforms are supported?
Host (where 9Remote agent runs):
- โ macOS (Intel + Apple Silicon)
- โ Linux (x64, arm64)
- โ Windows (x64)
Client (where you connect from):
- โ Any modern browser (Chrome, Safari, Firefox, Edge)
- โ iOS 14+
- โ Android 8+
- โ Tauri desktop app (macOS, Windows, Linux)
๐ ๏ธ Tech Stack
- Runtime: Node.js 20+
- Tunnel: Cloudflare Quick Tunnel โ zero-config secure tunnel
- Terminal: node-pty โ persistent PTY sessions
- Remote Desktop: node-datachannel (WebRTC) + robotjs (input control)
- Real-time: Socket.IO โ terminal streaming + WebRTC signaling
- Agent UI: Preact โ lightweight embedded dashboard
- Web Client: Next.js 16 + React 19 + Tailwind CSS 4
- Desktop App: Tauri 2 โ native shell with auto-updater
- Mobile App: Expo โ React Native with WebView shell
- Edge API: Cloudflare Workers โ session management + TURN credentials
๐ Troubleshooting
"Port 2208 already in use"
- Another 9Remote instance is running โ
pkill -f 9remotethen retry - Or run on a different port:
PORT=3308 9remote
"Cloudflare tunnel failed to start"
- Check internet connection
cloudflaredauto-installed on first run โ if it fails, install manually: cloudflared docs
"Screen Recording / Accessibility permission denied" (macOS)
- Grant permissions in
System Settings โ Privacy & Security - Restart 9Remote after granting
"QR code expired"
- One-time keys expire in 30 minutes โ regenerate from TUI menu:
Key โ Regenerate
"Can't connect from phone"
- Check both devices have internet
- Try forcing tunnel mode (skip LAN): Settings โ Connection โ Tunnel only
"Remote desktop laggy"
- Reduce resolution in settings
- Switch to terminal-only if desktop not needed
- Use LAN mode if on same Wi-Fi for lowest latency
โญ Show Your Support
9Remote is in active development and we need your support to reach the open-source milestone!
- โญ Star this repo โ every star brings us closer to going open-source
- ๐ฆ Share on Twitter / X โ tell other devs about 9Remote
- ๐ฌ Join our Facebook community โ facebook.com/groups/9teamvn
- ๐ Report issues โ found a bug? Let us know!
- ๐ก Request features โ what would make your remote workflow better?
๐ง Support & Links
- Website: 9remote.cc
- Documentation: docs.9remote.cc
- NPM Package: npmjs.com/package/9remote
- GitHub: github.com/decolua/9remote
- Issues: github.com/decolua/9remote/issues
- Facebook Community: facebook.com/groups/9teamvn
๐ License
Proprietary โ All Rights Reserved.
9Remote is currently in active development and is not open-source yet. The published npm package is free to use, but the source code is not publicly available.
๐ฏ Open-source milestone: once this repo reaches enough โญ support, the full source code will be released under the MIT license.