ghostterm 2.0.1 → 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 +84 -26
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,45 +1,103 @@
1
- # GhostTerm P2P
1
+ # GhostTerm — Control Claude Code from Your Phone
2
2
 
3
- Control your PC terminal from your phone direct P2P, no server in between.
3
+ > **v2.0: Complete P2P Rewrite** No more relay servers. Your terminal data never leaves your devices.
4
4
 
5
- ## How it works
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
6
 
7
- 1. Run `npx ghostterm-p2p` on your PC
8
- 2. A 6-digit pair code appears (with a QR code)
9
- 3. Open the mobile site on your phone and enter the code
10
- 4. A direct WebRTC P2P connection is established
11
- 5. All terminal data flows directly between your phone and PC, encrypted end-to-end
12
- 6. The signaling server only helps with the initial pairing — it never sees your terminal data
7
+ ## Why GhostTerm?
13
8
 
14
- ## Install & Run
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
15
+
16
+ ## Quick Start
15
17
 
16
18
  ```bash
17
- npx ghostterm-p2p
19
+ npx ghostterm
18
20
  ```
19
21
 
20
- Or install globally:
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
28
+
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 |
38
+
39
+ ## What's New in v2.0
40
+
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
- ```bash
23
- npm install -g ghostterm-p2p
24
- ghostterm-p2p
25
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
26
77
 
27
78
  ## Options
28
79
 
29
80
  ```
30
- -s, --signal <url> Signaling server URL
31
- --site <url> Mobile site URL
32
- -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
33
86
  ```
34
87
 
35
- ## Security
88
+ ## Requirements
36
89
 
37
- - **End-to-end encrypted**: WebRTC DTLS encryption protects all terminal data
38
- - **No data on servers**: The signaling server only relays WebRTC connection setup messages
39
- - **One-time pair codes**: Codes are deleted after use and expire in 5 minutes
40
- - **Brute force protection**: 3 wrong codes = 60 second lockout
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)
41
93
 
42
- ## Requirements
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
43
102
 
44
- - Node.js >= 18
45
- - Windows, macOS, or Linux
103
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghostterm",
3
- "version": "2.0.1",
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"