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.
- package/README.md +84 -26
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,45 +1,103 @@
|
|
|
1
|
-
# GhostTerm
|
|
1
|
+
# GhostTerm — Control Claude Code from Your Phone
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **v2.0: Complete P2P Rewrite** — No more relay servers. Your terminal data never leaves your devices.
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
19
|
+
npx ghostterm
|
|
18
20
|
```
|
|
19
21
|
|
|
20
|
-
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
-
|
|
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
|
-
##
|
|
88
|
+
## Requirements
|
|
36
89
|
|
|
37
|
-
- **
|
|
38
|
-
- **
|
|
39
|
-
- **
|
|
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
|
-
##
|
|
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
|
-
|
|
45
|
-
- Windows, macOS, or Linux
|
|
103
|
+
MIT
|