fied 0.2.3 → 0.2.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.
- package/README.md +71 -0
- package/package.json +3 -2
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# fied
|
|
2
|
+
|
|
3
|
+
Share your tmux session in the browser. End-to-end encrypted.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
npx fied
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
You get a link. Anyone with the link sees your terminal in real time and can type into it. The server never sees your data — the encryption key lives in the URL fragment (`#`), which never leaves the browser.
|
|
10
|
+
|
|
11
|
+
## How it works
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
tmux on your machine
|
|
15
|
+
↕ AES-256-GCM encrypted WebSocket
|
|
16
|
+
fied.app relay (sees only opaque bytes)
|
|
17
|
+
↕ AES-256-GCM encrypted WebSocket
|
|
18
|
+
Browser viewer (decrypts with key from URL #fragment)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
1. `npx fied` attaches to your tmux session and generates a 256-bit AES key
|
|
22
|
+
2. You get a URL like `https://fied.app/s/a1b2c3d4#<key>`
|
|
23
|
+
3. The viewer opens the link, decrypts in-browser, renders via xterm.js
|
|
24
|
+
4. Keystrokes travel back the same encrypted path — fully interactive
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Share the only tmux session (auto-detected)
|
|
30
|
+
npx fied
|
|
31
|
+
|
|
32
|
+
# Share a specific session
|
|
33
|
+
npx fied -s mysession
|
|
34
|
+
|
|
35
|
+
# Use a custom relay (self-hosted)
|
|
36
|
+
npx fied --relay https://your-relay.com
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Running `npx fied` with no active share session opens a picker to select a tmux session. After the link is shown, you can send it to the background and manage active shares by running `npx fied` again.
|
|
40
|
+
|
|
41
|
+
## Requirements
|
|
42
|
+
|
|
43
|
+
- Node.js 18+
|
|
44
|
+
- A running tmux session
|
|
45
|
+
|
|
46
|
+
## Features
|
|
47
|
+
|
|
48
|
+
- **End-to-end encrypted** — AES-256-GCM, key never reaches the server
|
|
49
|
+
- **Interactive** — viewers can type, not just watch
|
|
50
|
+
- **Background mode** — share persists after closing the terminal
|
|
51
|
+
- **Session management** — list, stop, or reconnect to active shares
|
|
52
|
+
- **Mobile support** — works on phones and tablets
|
|
53
|
+
- **Up to 5 concurrent viewers** per session
|
|
54
|
+
- **Auto-reconnect** — survives brief network interruptions
|
|
55
|
+
- **Zero config** — just `npx fied`
|
|
56
|
+
|
|
57
|
+
## Security
|
|
58
|
+
|
|
59
|
+
- AES-256-GCM with random IV per message
|
|
60
|
+
- Key placed in URL fragment — [never sent to the server](https://datatracker.ietf.org/doc/html/rfc3986#section-3.5)
|
|
61
|
+
- Relay forwards opaque binary blobs
|
|
62
|
+
- All traffic over WSS (TLS)
|
|
63
|
+
- Rate-limited session creation
|
|
64
|
+
|
|
65
|
+
## Self-hosting
|
|
66
|
+
|
|
67
|
+
The relay is a Cloudflare Worker. See the [repo](https://github.com/gstohl/fied) for deployment instructions.
|
|
68
|
+
|
|
69
|
+
## License
|
|
70
|
+
|
|
71
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fied",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Share your tmux session in the browser with end-to-end encryption",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"fied": "./dist/bin.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
|
-
"dist/bin.js"
|
|
10
|
+
"dist/bin.js",
|
|
11
|
+
"README.md"
|
|
11
12
|
],
|
|
12
13
|
"scripts": {
|
|
13
14
|
"build": "node build.mjs",
|