9remote 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/README.md +79 -33
  2. package/dist/cli.cjs +62 -62
  3. package/dist/ptyDaemon.cjs +7 -7
  4. package/dist/server.cjs +206 -187
  5. package/dist/ui/assets/index-B3Etxg9r.js +8 -0
  6. package/dist/ui/index.html +1 -1
  7. package/dist/web/404.html +1 -1
  8. package/dist/web/__next.__PAGE__.txt +2 -2
  9. package/dist/web/__next._full.txt +7 -7
  10. package/dist/web/__next._head.txt +1 -1
  11. package/dist/web/__next._index.txt +6 -6
  12. package/dist/web/__next._tree.txt +2 -2
  13. package/dist/web/_next/static/chunks/1750.a35b00a05b21d196.js +1 -0
  14. package/dist/web/_next/static/chunks/3973-2b22a02354eb3d07.js +1 -0
  15. package/dist/web/_next/static/chunks/6552-5bb346448e83e0a2.js +1 -0
  16. package/dist/web/_next/static/chunks/{8334-0e9493cfa1547244.js → 8334-eeba96b49fa7e52d.js} +1 -1
  17. package/dist/web/_next/static/chunks/8529-dc6ec7164d23d48e.js +1 -0
  18. package/dist/web/_next/static/chunks/9958-4e13af15ce454c7a.js +1 -0
  19. package/dist/web/_next/static/chunks/app/admin/admins/{page-0f20b93a1fbe900c.js → page-b68025e0c5fe453c.js} +1 -1
  20. package/dist/web/_next/static/chunks/app/admin/login/page-38d9b3d31ee14847.js +1 -0
  21. package/dist/web/_next/static/chunks/app/admin/modes/{page-8f292692166b56fc.js → page-7ebdbd17bfde67fd.js} +1 -1
  22. package/dist/web/_next/static/chunks/app/admin/ota/{page-c9fe76f24ac08288.js → page-b237f7c870eeade4.js} +1 -1
  23. package/dist/web/_next/static/chunks/app/admin/{page-622381f5dac39ddb.js → page-a197e50c2b5a08f4.js} +1 -1
  24. package/dist/web/_next/static/chunks/app/admin/turn/{page-8f6b835a319f3fe3.js → page-dc625ee476578675.js} +1 -1
  25. package/dist/web/_next/static/chunks/app/dev/question/page-db919ed1d6babdb4.js +1 -0
  26. package/dist/web/_next/static/chunks/app/{layout-341400810c81f67e.js → layout-ec53a1a0c4b3e99e.js} +1 -1
  27. package/dist/web/_next/static/chunks/app/login/{page-3e24e4b0ca0a7df2.js → page-e2c75b449a40fc02.js} +1 -1
  28. package/dist/web/_next/static/chunks/app/page-24d612a793ea7763.js +22 -0
  29. package/dist/web/_next/static/chunks/app/workspace/layout-f5d5ba72458fb2a7.js +14 -0
  30. package/dist/web/_next/static/chunks/{webpack-c971919003362f96.js → webpack-210219beafaa52a1.js} +1 -1
  31. package/dist/web/_next/static/css/3bb9c5823a043a03.css +1 -0
  32. package/dist/web/_not-found/__next._full.txt +6 -6
  33. package/dist/web/_not-found/__next._head.txt +1 -1
  34. package/dist/web/_not-found/__next._index.txt +6 -6
  35. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
  36. package/dist/web/_not-found/__next._not-found.txt +1 -1
  37. package/dist/web/_not-found/__next._tree.txt +2 -2
  38. package/dist/web/_not-found.html +1 -1
  39. package/dist/web/_not-found.txt +6 -6
  40. package/dist/web/admin/__next._full.txt +7 -7
  41. package/dist/web/admin/__next._head.txt +1 -1
  42. package/dist/web/admin/__next._index.txt +6 -6
  43. package/dist/web/admin/__next._tree.txt +2 -2
  44. package/dist/web/admin/__next.admin.__PAGE__.txt +2 -2
  45. package/dist/web/admin/__next.admin.txt +1 -1
  46. package/dist/web/admin/admins/__next._full.txt +7 -7
  47. package/dist/web/admin/admins/__next._head.txt +1 -1
  48. package/dist/web/admin/admins/__next._index.txt +6 -6
  49. package/dist/web/admin/admins/__next._tree.txt +2 -2
  50. package/dist/web/admin/admins/__next.admin.admins.__PAGE__.txt +2 -2
  51. package/dist/web/admin/admins/__next.admin.admins.txt +1 -1
  52. package/dist/web/admin/admins/__next.admin.txt +1 -1
  53. package/dist/web/admin/admins.html +1 -1
  54. package/dist/web/admin/admins.txt +7 -7
  55. package/dist/web/admin/login/__next._full.txt +7 -7
  56. package/dist/web/admin/login/__next._head.txt +1 -1
  57. package/dist/web/admin/login/__next._index.txt +6 -6
  58. package/dist/web/admin/login/__next._tree.txt +2 -2
  59. package/dist/web/admin/login/__next.admin.login.__PAGE__.txt +2 -2
  60. package/dist/web/admin/login/__next.admin.login.txt +1 -1
  61. package/dist/web/admin/login/__next.admin.txt +1 -1
  62. package/dist/web/admin/login.html +1 -1
  63. package/dist/web/admin/login.txt +7 -7
  64. package/dist/web/admin/modes/__next._full.txt +7 -7
  65. package/dist/web/admin/modes/__next._head.txt +1 -1
  66. package/dist/web/admin/modes/__next._index.txt +6 -6
  67. package/dist/web/admin/modes/__next._tree.txt +2 -2
  68. package/dist/web/admin/modes/__next.admin.modes.__PAGE__.txt +2 -2
  69. package/dist/web/admin/modes/__next.admin.modes.txt +1 -1
  70. package/dist/web/admin/modes/__next.admin.txt +1 -1
  71. package/dist/web/admin/modes.html +1 -1
  72. package/dist/web/admin/modes.txt +7 -7
  73. package/dist/web/admin/ota/__next._full.txt +7 -7
  74. package/dist/web/admin/ota/__next._head.txt +1 -1
  75. package/dist/web/admin/ota/__next._index.txt +6 -6
  76. package/dist/web/admin/ota/__next._tree.txt +2 -2
  77. package/dist/web/admin/ota/__next.admin.ota.__PAGE__.txt +2 -2
  78. package/dist/web/admin/ota/__next.admin.ota.txt +1 -1
  79. package/dist/web/admin/ota/__next.admin.txt +1 -1
  80. package/dist/web/admin/ota.html +1 -1
  81. package/dist/web/admin/ota.txt +7 -7
  82. package/dist/web/admin/turn/__next._full.txt +7 -7
  83. package/dist/web/admin/turn/__next._head.txt +1 -1
  84. package/dist/web/admin/turn/__next._index.txt +6 -6
  85. package/dist/web/admin/turn/__next._tree.txt +2 -2
  86. package/dist/web/admin/turn/__next.admin.turn.__PAGE__.txt +2 -2
  87. package/dist/web/admin/turn/__next.admin.turn.txt +1 -1
  88. package/dist/web/admin/turn/__next.admin.txt +1 -1
  89. package/dist/web/admin/turn.html +1 -1
  90. package/dist/web/admin/turn.txt +7 -7
  91. package/dist/web/admin.html +1 -1
  92. package/dist/web/admin.txt +7 -7
  93. package/dist/web/agent-icons/antigravity-ui.png +0 -0
  94. package/dist/web/agent-icons/omp-ui.svg +1 -0
  95. package/dist/web/agent-icons/opencode-ui.png +0 -0
  96. package/dist/web/dev/question/__next._full.txt +7 -7
  97. package/dist/web/dev/question/__next._head.txt +1 -1
  98. package/dist/web/dev/question/__next._index.txt +6 -6
  99. package/dist/web/dev/question/__next._tree.txt +2 -2
  100. package/dist/web/dev/question/__next.dev.question.__PAGE__.txt +2 -2
  101. package/dist/web/dev/question/__next.dev.question.txt +1 -1
  102. package/dist/web/dev/question/__next.dev.txt +1 -1
  103. package/dist/web/dev/question.html +1 -1
  104. package/dist/web/dev/question.txt +7 -7
  105. package/dist/web/index.html +1 -1
  106. package/dist/web/index.txt +7 -7
  107. package/dist/web/login/__next._full.txt +7 -7
  108. package/dist/web/login/__next._head.txt +1 -1
  109. package/dist/web/login/__next._index.txt +6 -6
  110. package/dist/web/login/__next._tree.txt +2 -2
  111. package/dist/web/login/__next.login.__PAGE__.txt +2 -2
  112. package/dist/web/login/__next.login.txt +1 -1
  113. package/dist/web/login.html +1 -1
  114. package/dist/web/login.txt +7 -7
  115. package/dist/web/workspace/__next._full.txt +7 -7
  116. package/dist/web/workspace/__next._head.txt +1 -1
  117. package/dist/web/workspace/__next._index.txt +6 -6
  118. package/dist/web/workspace/__next._tree.txt +2 -2
  119. package/dist/web/workspace/__next.workspace.__PAGE__.txt +1 -1
  120. package/dist/web/workspace/__next.workspace.txt +2 -2
  121. package/dist/web/workspace/browse/__next._full.txt +7 -7
  122. package/dist/web/workspace/browse/__next._head.txt +1 -1
  123. package/dist/web/workspace/browse/__next._index.txt +6 -6
  124. package/dist/web/workspace/browse/__next._tree.txt +2 -2
  125. package/dist/web/workspace/browse/__next.workspace.browse.__PAGE__.txt +1 -1
  126. package/dist/web/workspace/browse/__next.workspace.browse.txt +1 -1
  127. package/dist/web/workspace/browse/__next.workspace.txt +2 -2
  128. package/dist/web/workspace/browse.html +1 -1
  129. package/dist/web/workspace/browse.txt +7 -7
  130. package/dist/web/workspace/editor/__next._full.txt +7 -7
  131. package/dist/web/workspace/editor/__next._head.txt +1 -1
  132. package/dist/web/workspace/editor/__next._index.txt +6 -6
  133. package/dist/web/workspace/editor/__next._tree.txt +2 -2
  134. package/dist/web/workspace/editor/__next.workspace.editor.__PAGE__.txt +1 -1
  135. package/dist/web/workspace/editor/__next.workspace.editor.txt +1 -1
  136. package/dist/web/workspace/editor/__next.workspace.txt +2 -2
  137. package/dist/web/workspace/editor.html +1 -1
  138. package/dist/web/workspace/editor.txt +7 -7
  139. package/dist/web/workspace/files/__next._full.txt +7 -7
  140. package/dist/web/workspace/files/__next._head.txt +1 -1
  141. package/dist/web/workspace/files/__next._index.txt +6 -6
  142. package/dist/web/workspace/files/__next._tree.txt +2 -2
  143. package/dist/web/workspace/files/__next.workspace.files.__PAGE__.txt +1 -1
  144. package/dist/web/workspace/files/__next.workspace.files.txt +1 -1
  145. package/dist/web/workspace/files/__next.workspace.txt +2 -2
  146. package/dist/web/workspace/files.html +1 -1
  147. package/dist/web/workspace/files.txt +7 -7
  148. package/dist/web/workspace/git/__next._full.txt +7 -7
  149. package/dist/web/workspace/git/__next._head.txt +1 -1
  150. package/dist/web/workspace/git/__next._index.txt +6 -6
  151. package/dist/web/workspace/git/__next._tree.txt +2 -2
  152. package/dist/web/workspace/git/__next.workspace.git.__PAGE__.txt +1 -1
  153. package/dist/web/workspace/git/__next.workspace.git.txt +1 -1
  154. package/dist/web/workspace/git/__next.workspace.txt +2 -2
  155. package/dist/web/workspace/git.html +1 -1
  156. package/dist/web/workspace/git.txt +7 -7
  157. package/dist/web/workspace/mobile/__next._full.txt +7 -7
  158. package/dist/web/workspace/mobile/__next._head.txt +1 -1
  159. package/dist/web/workspace/mobile/__next._index.txt +6 -6
  160. package/dist/web/workspace/mobile/__next._tree.txt +2 -2
  161. package/dist/web/workspace/mobile/__next.workspace.mobile.__PAGE__.txt +1 -1
  162. package/dist/web/workspace/mobile/__next.workspace.mobile.txt +1 -1
  163. package/dist/web/workspace/mobile/__next.workspace.txt +2 -2
  164. package/dist/web/workspace/mobile.html +1 -1
  165. package/dist/web/workspace/mobile.txt +7 -7
  166. package/dist/web/workspace/remote/__next._full.txt +7 -7
  167. package/dist/web/workspace/remote/__next._head.txt +1 -1
  168. package/dist/web/workspace/remote/__next._index.txt +6 -6
  169. package/dist/web/workspace/remote/__next._tree.txt +2 -2
  170. package/dist/web/workspace/remote/__next.workspace.remote.__PAGE__.txt +1 -1
  171. package/dist/web/workspace/remote/__next.workspace.remote.txt +1 -1
  172. package/dist/web/workspace/remote/__next.workspace.txt +2 -2
  173. package/dist/web/workspace/remote.html +1 -1
  174. package/dist/web/workspace/remote.txt +7 -7
  175. package/dist/web/workspace/terminal/default/__next._full.txt +7 -7
  176. package/dist/web/workspace/terminal/default/__next._head.txt +1 -1
  177. package/dist/web/workspace/terminal/default/__next._index.txt +6 -6
  178. package/dist/web/workspace/terminal/default/__next._tree.txt +2 -2
  179. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.__PAGE__.txt +1 -1
  180. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.txt +1 -1
  181. package/dist/web/workspace/terminal/default/__next.workspace.terminal.txt +1 -1
  182. package/dist/web/workspace/terminal/default/__next.workspace.txt +2 -2
  183. package/dist/web/workspace/terminal/default.html +1 -1
  184. package/dist/web/workspace/terminal/default.txt +7 -7
  185. package/dist/web/workspace/workspaces/__next._full.txt +7 -7
  186. package/dist/web/workspace/workspaces/__next._head.txt +1 -1
  187. package/dist/web/workspace/workspaces/__next._index.txt +6 -6
  188. package/dist/web/workspace/workspaces/__next._tree.txt +2 -2
  189. package/dist/web/workspace/workspaces/__next.workspace.txt +2 -2
  190. package/dist/web/workspace/workspaces/__next.workspace.workspaces.__PAGE__.txt +1 -1
  191. package/dist/web/workspace/workspaces/__next.workspace.workspaces.txt +1 -1
  192. package/dist/web/workspace/workspaces.html +1 -1
  193. package/dist/web/workspace/workspaces.txt +7 -7
  194. package/dist/web/workspace.html +1 -1
  195. package/dist/web/workspace.txt +7 -7
  196. package/package.json +1 -1
  197. package/dist/ui/assets/index-Ckex1BQP.js +0 -8
  198. package/dist/web/_next/static/chunks/1750.f7ba3332b56a8e68.js +0 -1
  199. package/dist/web/_next/static/chunks/3973-3a61c2014e1b09b8.js +0 -1
  200. package/dist/web/_next/static/chunks/6552-a42cab8d91efbdea.js +0 -1
  201. package/dist/web/_next/static/chunks/7629-16de8d4154923623.js +0 -1
  202. package/dist/web/_next/static/chunks/8922-a9cee4a104876005.js +0 -1
  203. package/dist/web/_next/static/chunks/app/admin/login/page-dbcfb21ebbd0bb00.js +0 -1
  204. package/dist/web/_next/static/chunks/app/dev/question/page-5fd80ae293617365.js +0 -1
  205. package/dist/web/_next/static/chunks/app/page-35b671680baa15ac.js +0 -22
  206. package/dist/web/_next/static/chunks/app/workspace/layout-45760b58dab691e3.js +0 -14
  207. package/dist/web/_next/static/css/5c40e58137a11306.css +0 -1
  208. /package/dist/web/_next/static/{ddcA6fYUJfX5M6tasvU49 → -4kBSWRXKHPAs-s1ygA3F}/_buildManifest.js +0 -0
  209. /package/dist/web/_next/static/{ddcA6fYUJfX5M6tasvU49 → -4kBSWRXKHPAs-s1ygA3F}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -1,16 +1,22 @@
1
1
  <div align="center">
2
- <img src="https://raw.githubusercontent.com/decolua/9remote_public/main/images/screen.png" alt="9Remote Workspace" width="900"/>
2
+ <img src="https://raw.githubusercontent.com/decolua/9remote_public/main/images/desktop-ide.webp" alt="9Remote desktop workspace: terminal, editor and AI agent panes side by side" width="900"/>
3
3
 
4
- # 9Remote — Code From Anywhere on Earth
4
+ <p align="center">
5
+ <img src="https://raw.githubusercontent.com/decolua/9remote_public/main/images/mobile-1.webp" width="32%" alt="Claude Code on Phone"/>
6
+ <img src="https://raw.githubusercontent.com/decolua/9remote_public/main/images/mobile-2.webp" width="32%" alt="File Explorer on Phone"/>
7
+ <img src="https://raw.githubusercontent.com/decolua/9remote_public/main/images/mobile-3.webp" width="32%" alt="System Dashboard on Phone"/>
8
+ </p>
5
9
 
6
- **Your entire dev machine, in your pocket.**<br/>
7
- **Remote IDE, Remote Desktop, File Explorer, Mobile Emulator, and Localhost Preview — buttery-smooth on mobile with WebRTC ultra-low latency.**
10
+ # 9Remote — Remote Everything, Vibecode Everywhere
11
+
12
+ **Your entire dev workstation in your pocket.**<br/>
13
+ **Remote IDE, 60fps Desktop, Visual File Explorer, Live Mobile Emulator, Zero-Config Localhost, and Remote Vibe Coding with 30+ AI agents on PC, Web, iPad, or phone.**
8
14
 
9
15
  [![npm version](https://img.shields.io/npm/v/9remote.svg)](https://www.npmjs.com/package/9remote)
10
16
  [![Downloads](https://img.shields.io/npm/dm/9remote.svg)](https://www.npmjs.com/package/9remote)
11
- [![License](https://img.shields.io/badge/license-MIT-blue.svg)](#-license)
17
+ [![License](https://img.shields.io/badge/license-BSL--1.1-blue.svg)](#-license)
12
18
 
13
- [🚀 Quick Start](#-quick-start) • [✨ Superpowers](#-5-remote-superpowers--mobile-first) • [📊 Comparison](#-how-9remote-compares) • [🌐 Website](https://9remote.cc) • [📖 Docs](https://docs.9remote.cc)
19
+ [🚀 Quick Start](#-quick-start) • [📱 Platforms](#-supported-platforms) • [✨ 8 Superpowers](#-8-remote-superpowers) • [🛡️ Security](#-zero-trust-security-architecture) • [📊 Comparison](#-how-9remote-compares) • [🌐 Website](https://9remote.cc) • [📖 Docs](https://docs.9remote.cc)
14
20
  </div>
15
21
 
16
22
  ---
@@ -24,7 +30,7 @@ npm install -g 9remote
24
30
  9remote
25
31
  ```
26
32
 
27
- 🎉 **Scan the QR code with your phone camera (or open the link in any browser) → click "Approve" on your host → you're in!**
33
+ 🎉 **Scan the QR code with your phone camera (or open the link on any browser) → click "Approve" on your host → you're in!**
28
34
 
29
35
  > **Works on macOS, Linux, and Windows.** Requires Node.js 18+.
30
36
  > Zero configuration. No port forwarding. No account or signup required.
@@ -38,47 +44,86 @@ npm install -g 9remote
38
44
 
39
45
  ---
40
46
 
41
- ## ✨ 5 Remote Superpowers + Mobile-First
47
+ ## 📱 Supported Platforms
42
48
 
43
- ### 💻 1. Remote IDE & AI Agent Workspace
44
- - Multi-pane terminal rows with smooth drag-to-resize splitters.
45
- - Integrated code editor with syntax highlighting and file tree.
46
- - Visual Git status, diff viewer, and multi-worktree switcher.
47
- - Auto-opening artifact inspector for **Claude Code**, Codex, and CLI AI agents (HTML, Markdown, Mermaid).
49
+ | Platform | Host (Your Machine) | Client (Anywhere) | Download / Access |
50
+ |---|:---:|:---:|---|
51
+ | **macOS** | ✅ | ✅ | `npm i -g 9remote` or [Download .dmg](https://github.com/decolua/9remote/releases/latest/download/9Remote-macos-universal.dmg) |
52
+ | **Windows** | ✅ | ✅ | `npm i -g 9remote` or [Download .exe](https://github.com/decolua/9remote/releases/latest/download/9Remote-windows-x64-setup.exe) |
53
+ | **Linux** | ✅ | ✅ | `npm i -g 9remote` |
54
+ | **Web Browser** | — | ✅ | [`https://9remote.cc/login`](https://9remote.cc/login) *(Zero install, any browser)* |
55
+ | **iOS / iPadOS** | — | ✅ | Web / PWA (Add to Home Screen) *(Supports iPad keyboard & trackpad)* |
56
+ | **Android** | — | ✅ | Web / PWA (Add to Home Screen) *(Fullscreen dev mode)* |
57
+
58
+ ---
59
+
60
+ ## ✨ 8 Remote Superpowers
61
+
62
+ ### 🤖 1. Remote Vibe Coding (AI-Ready)
63
+ - Run **Claude Code**, Cursor CLI, Aider, Codex & 30+ AI agents on the go.
64
+ - Built-in artifact inspector with live rendering for HTML, Markdown, and Mermaid diagrams.
65
+ - Dedicated AI shortcut triggers and multi-turn workflow tracking.
48
66
 
49
- ### 📱 2. Code on Mobile, Web & Any Screen (Mobile Full Feature)
67
+ ### 📱 2. Every Screen, Everywhere (Mobile Full Feature)
50
68
  - Dedicated developer keyboard row (`Esc`, `Tab`, `Ctrl`, `Alt`, navigation arrows).
51
- - Customizable AI shortcuts and fluid swipe navigation between sessions.
69
+ - Customizable shortcuts and fluid swipe navigation between sessions.
52
70
  - Tactile haptic feedback on touch for responsive coding.
53
71
  - Fully adaptive UI: Multi-column IDE on desktop/tablet, touch-first card view on mobile.
54
72
 
55
- ### 🖥️ 3. Instant Remote Desktop (WebRTC 60fps)
73
+ ### 🖥️ 3. 60fps Remote Desktop (WebRTC P2P)
56
74
  - Hardware-accelerated screen streaming with ultra-low latency (<20ms).
57
75
  - Mouse, touch, keyboard controls, and multi-monitor switching.
58
76
  - Vastly lighter on battery and bandwidth than VNC, AnyDesk, or TeamViewer.
59
77
 
60
- ### 📁 4. Remote File Explorer
61
- - Visual directory tree with instant fuzzy file search.
62
- - Touch drag-and-drop file transfers (upload and download).
63
- - Secured by path-jail boundaries keeping your host system safe.
78
+ ### 💻 4. Full Remote IDE & Multi-pane Terminal
79
+ - Multi-pane terminal rows with smooth drag-to-resize splitters.
80
+ - Integrated code editor with syntax highlighting and file tree.
81
+ - Visual Git status, diff viewer, and multi-worktree switcher.
64
82
 
65
83
  ### 📱 5. Live Remote Emulator
66
84
  - Interactive remote stream for Android Emulator and iOS Simulator.
67
85
  - Tap, swipe, and test mobile UI directly from your phone browser without sitting at your desk.
68
86
 
69
- ### 🌐 6. Instant Localhost Preview
87
+ ### 🌐 6. Zero-Config Localhost Preview
70
88
  - Built-in Service Worker bridge streams `localhost:3000` or `localhost:8080` to your mobile browser.
71
- - Preview local web apps in real time with zero port forwarding and no ngrok tunnels.
89
+ - Preview local web apps in real time with zero port forwarding, no ngrok tunnels, and zero public internet exposure.
72
90
 
73
- ### 🔄 7. Persistent PTY Daemon
91
+ ### 📁 7. Visual File Explorer (Path-Jailed)
92
+ - Visual directory tree with instant fuzzy file search (⌘⇧P).
93
+ - Touch drag-and-drop file transfers (upload and download).
94
+ - Secured by strict path-jail boundaries keeping your host system safe.
95
+
96
+ ### 🔄 8. Persistent PTY Daemon
74
97
  - Background daemon keeps your shells and builds alive on the host.
75
98
  - Switching networks (Wi-Fi to 4G), locking your phone, or closing tabs never kills your running tasks.
76
99
 
77
- ### 🛡️ 8. 3-Layer Zero-Trust Security
78
- 1. **Split-Key Pairing:** The key is split into HEAD and TAIL; routing relay only sees HEAD and never knows your secret TAIL.
100
+ ---
101
+
102
+ ## 🛡️ Zero-Trust Security Architecture
103
+
104
+ 9Remote uses 3 layers of zero-trust defense:
105
+ 1. **Split-Key Pairing:** The key is split into HEAD and TAIL. The relay server only brokers the handshake with HEAD and never knows your secret TAIL.
79
106
  2. **Direct WebRTC P2P:** Data flows directly device-to-device with X25519 + AES-256-GCM encryption.
80
107
  3. **Physical Host Approval:** New devices cannot connect until you physically click "Approve" on your computer screen.
81
108
 
109
+ ```mermaid
110
+ sequenceDiagram
111
+ autonumber
112
+ participant Client as Mobile / Web Client
113
+ participant Server as 9Remote Signaling Relay
114
+ participant Host as Host Machine (Agent)
115
+
116
+ Host->>Server: 1. Register HEAD (TAIL stays private on Host)
117
+ Client->>Server: 2. Request Host lookup with HEAD
118
+ Server-->>Client: 3. Return Host Public Key (Relay steps aside)
119
+ Note over Client,Host: Direct P2P Connection (WebRTC DataChannel)
120
+ Client->>Host: 4. Send encrypted TAIL (X25519 + AES-GCM)
121
+ Note over Host: Host verifies TAIL secret
122
+ Host-->>Host: 5. Physical Security Prompt: "Approve Device?"
123
+ Note over Host: You click Approve on host screen
124
+ Host-->>Client: 6. Secure P2P Session Established (<20ms latency)
125
+ ```
126
+
82
127
  ---
83
128
 
84
129
  ## 📊 How 9Remote Compares
@@ -87,25 +132,26 @@ npm install -g 9remote
87
132
  |---------|:-----------:|:-------------:|:----------:|:-------------:|:-------:|
88
133
  | **Zero Config** | ✅ | ✅ | ✅ | ✅ | ❌ |
89
134
  | **Remote IDE** | ✅ | ❌ | ❌ | ❌ | ❌ |
135
+ | **30+ AI Agents & Vibe Coding** | ✅ | ✅ | ❌ | ❌ | ❌ |
90
136
  | **Terminal Access** | ✅ | ✅ | ❌ | ❌ | ✅ |
91
137
  | **Persistent Daemon** | ✅ | ✅ | ❌ | ❌ | ✅ |
92
138
  | **Remote Localhost Preview** | ✅ | ❌ | ❌ | ❌ | ❌ |
93
139
  | **Touch File Explorer & Editor** | ✅ | ❌ | ✅ | ❌ | ✅ |
94
- | **Remote Desktop** | ✅ | ❌ | ✅ | ✅ | ❌ |
140
+ | **Remote Desktop (60fps)** | ✅ | ❌ | ✅ | ✅ | ❌ |
95
141
  | **Remote Emulator** | ✅ | ❌ | ❌ | ❌ | ❌ |
96
142
  | **AI Agent Artifacts** | ✅ | ✅ | ❌ | ❌ | ❌ |
97
143
  | **Physical Host Approval** | ✅ | ❌ | ✅ | ❌ | ❌ |
98
144
  | **Git Integration** | ✅ | ❌ | ❌ | ❌ | ❌ |
99
- | **Mobile Optimized** | ✅ | ✅ | ❌ | ❌ | ✅ |
100
- | **Browser-Based** | ✅ | ✅ | ❌ | ✅ | ❌ |
145
+ | **Mobile & iPad Optimized** | ✅ | ✅ | ❌ | ❌ | ✅ |
146
+ | **Browser-Based (Zero Install)** | ✅ | ✅ | ❌ | ✅ | ❌ |
101
147
  | **QR Login** | ✅ | ✅ | ❌ | ❌ | ❌ |
102
148
  | **Auto Tunnel** | ✅ | ✅ | ✅ | ✅ | ❌ |
103
149
  | **No Port Forwarding** | ✅ | ✅ | ✅ | ✅ | ❌ |
104
150
  | **No Account Required** | ✅ | ❌ | ❌ | ❌ | ❌ |
105
- | **Free & Open Source** | ✅ | ❌ | ❌ | ✅ | ❌ |
106
- | **TOTAL** | **18 / 18** | 10 / 18 | 6 / 18 | 5 / 18 | 5 / 18 |
151
+ | **Free & Self-Hostable** | ✅ | ❌ | ❌ | ✅ | ❌ |
152
+ | **TOTAL** | **19 / 19** | 10 / 19 | 6 / 19 | 5 / 19 | 5 / 19 |
107
153
 
108
- > **🏆 9Remote: Complete 18/18 capabilities · 100% self-hosted & private.**
154
+ > **🏆 9Remote: Complete 19/19 capabilities · 100% self-hosted & private.**
109
155
 
110
156
  ---
111
157
 
@@ -133,7 +179,7 @@ npm install -g 9remote
133
179
  <details>
134
180
  <summary><b>💰 Is it free?</b></summary>
135
181
 
136
- **Yes.** 9Remote is free, open source (MIT license), with no subscriptions and no signup required.
182
+ **Yes.** 9Remote is free for personal, internal, and commercial use inside your organization.
137
183
  </details>
138
184
 
139
185
  <details>
@@ -152,4 +198,4 @@ Works with any CLI AI tool: **Claude Code**, Cursor CLI, Aider, Codex, OpenClaw,
152
198
 
153
199
  ## 📄 License
154
200
 
155
- MIT License. Free for personal and commercial use.
201
+ Business Source License 1.1 — see [LICENSE](https://github.com/decolua/9remote/blob/main/LICENSE). Free for personal, internal, and commercial use.