ghostterm 2.1.0 → 2.1.1

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 (2) hide show
  1. package/README.md +83 -21
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,17 @@
1
- # GhostTerm
1
+ # GhostTerm — Control Claude Code from Your Phone
2
2
 
3
- Control your PC terminal from your phone direct P2P, no relay server.
3
+ > **v2.0: Complete P2P Rewrite** No more relay servers. Your terminal data never leaves your devices.
4
+
5
+ GhostTerm lets you control your PC terminal from your phone over a **direct peer-to-peer WebRTC connection**. Built for Claude Code users who need to approve prompts, monitor output, and manage sessions on the go.
6
+
7
+ ## Why GhostTerm?
8
+
9
+ **Zero Trust Architecture** — Unlike traditional remote terminal tools that route your data through a server, GhostTerm establishes a direct encrypted tunnel between your phone and PC. The signaling server only helps with the initial handshake — it never sees your terminal data.
10
+
11
+ - **End-to-end encrypted** (WebRTC DTLS) — not even we can read your data
12
+ - **Direct P2P** — sub-millisecond latency, no relay bottleneck
13
+ - **Google Sign-In auto-pair** — same account on phone + PC, connects instantly
14
+ - **No API keys, no SSH, no Tailscale** — just `npx ghostterm` and go
4
15
 
5
16
  ## Quick Start
6
17
 
@@ -8,34 +19,85 @@ Control your PC terminal from your phone — direct P2P, no relay server.
8
19
  npx ghostterm
9
20
  ```
10
21
 
11
- First time: browser opens for Google sign-in (one-time). After that, it remembers you.
22
+ 1. Run the command above on your PC (requires [Node.js 18+](https://nodejs.org))
23
+ 2. First time: browser opens for Google sign-in (one-time, remembered after)
24
+ 3. Open **[ghostterm.pages.dev](https://ghostterm.pages.dev)** on your phone
25
+ 4. Sign in with the same Google account → **auto-connects, no codes needed**
26
+
27
+ ## Features
12
28
 
13
- ## How it works
29
+ | Feature | Description |
30
+ |---------|------------|
31
+ | **4 Concurrent Terminals** | Manage multiple Claude Code sessions with ghost cell tabs |
32
+ | **One-Tap y/n** | Approve or deny Claude Code permission prompts instantly |
33
+ | **Pixel Office** | Animated ghost workspace — see all terminals at a glance |
34
+ | **File Upload** | Send screenshots and files from phone to PC |
35
+ | **Dangerous Mode** | Launch Claude Code with `--dangerously-skip-permissions` |
36
+ | **Auto-Reconnect** | Seamless recovery when connection drops |
37
+ | **PWA Support** | Add to home screen for native app experience |
14
38
 
15
- 1. Run `npx ghostterm` on your PC
16
- 2. Open [ghostterm.pages.dev](https://ghostterm.pages.dev) on your phone
17
- 3. Sign in with the same Google account → auto-connects, no codes needed
18
- 4. All terminal data flows directly between devices (WebRTC, end-to-end encrypted)
39
+ ## What's New in v2.0
19
40
 
20
- ## Features
41
+ GhostTerm v2.0 is a **ground-up rewrite** replacing the relay architecture with peer-to-peer WebRTC:
42
+
43
+ - **Before (v1):** Phone → Relay Server → PC (server sees all terminal data)
44
+ - **After (v2):** Phone ↔ PC directly (server only helps with pairing)
45
+
46
+ This means:
47
+ - Your terminal data is **never stored or transmitted through any server**
48
+ - Latency drops from ~100ms (relay round-trip) to **<5ms** (direct P2P)
49
+ - Server costs are near-zero (signaling only, no data relay)
50
+ - Works even if the signaling server goes down (existing connections persist)
51
+
52
+ ## Security Model
21
53
 
22
- - **Direct P2P** — no relay server, zero latency
23
- - **End-to-end encrypted** DTLS encryption, server never sees your data
24
- - **Google auto-pair** — same account on both sides, no codes needed
25
- - **4 terminals** — manage multiple sessions with ghost cells
26
- - **Pixel office** — animated ghost workspace with your terminals
27
- - **One-tap y/n** — approve Claude Code prompts instantly
28
- - **File upload** send files from phone to PC
54
+ ```
55
+ Phone ──── WebRTC DataChannel (DTLS 1.3 encrypted) ────── PC
56
+
57
+ (pairing only)
58
+
59
+ Signaling Server
60
+ (exchanges SDP/ICE, never sees terminal data)
61
+ ```
62
+
63
+ - **DTLS encryption**: All terminal data encrypted end-to-end
64
+ - **No data at rest**: Signaling server stores nothing
65
+ - **One-time pair codes**: 6-digit codes expire in 5 minutes
66
+ - **Brute force protection**: 3 wrong codes = 60s lockout
67
+ - **Google OAuth**: Verified identity for auto-pairing
68
+
69
+ ## How It Works
70
+
71
+ 1. Your PC connects to a lightweight signaling server and registers with your Google account
72
+ 2. Your phone opens the web app and signs in with the same Google account
73
+ 3. The signaling server matches the accounts and facilitates a WebRTC handshake
74
+ 4. A direct peer-to-peer connection is established between your phone and PC
75
+ 5. All terminal I/O flows directly over the encrypted P2P channel
76
+ 6. The signaling server is no longer involved
29
77
 
30
78
  ## Options
31
79
 
32
80
  ```
33
- -s, --signal <url> Signaling server URL
34
- --site <url> Mobile site URL
35
- -h, --help Show help
81
+ npx ghostterm [options]
82
+
83
+ -s, --signal <url> Custom signaling server URL
84
+ --site <url> Custom mobile site URL
85
+ -h, --help Show help
36
86
  ```
37
87
 
38
88
  ## Requirements
39
89
 
40
- - Node.js >= 18
41
- - Windows, macOS, or Linux
90
+ - **Node.js 18+** (for the PC companion)
91
+ - **Modern browser** (for the phone — Safari, Chrome, Firefox)
92
+ - **Google account** (for auto-pairing; or use 6-digit code without login)
93
+
94
+ ## Privacy
95
+
96
+ - No analytics or tracking on the terminal data path
97
+ - Google Sign-In is used solely for pairing — we don't access your Google data
98
+ - The signaling server is open-source and can be self-hosted
99
+ - All WebRTC connections use DTLS encryption by default
100
+
101
+ ## License
102
+
103
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghostterm",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "Control your PC terminal from your phone — direct P2P, no server in between",
5
5
  "bin": {
6
6
  "ghostterm": "bin/ghostterm-p2p.js"