fwdcast 1.2.0 → 1.2.2

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 +79 -22
  2. package/package.json +3 -2
package/README.md CHANGED
@@ -1,63 +1,120 @@
1
1
  # fwdcast
2
2
 
3
- Temporary file sharing - stream local files as a public website without uploading.
3
+ **Temporary file sharing** - Stream local files as a public website without uploading anything.
4
4
 
5
5
  ## Features
6
6
 
7
- - **No upload required** - Files stream directly from your machine
8
- - **Instant sharing** - Get a public URL in seconds
9
- - **VS Code-style UI** - Beautiful dark theme file browser
10
- - **File preview** - View text files, images, and code in-browser
11
- - **Download as ZIP** - Download entire directories with one click
12
- - **Auto-expires** - Sessions automatically expire after 30 minutes
7
+ - 🚀 **Instant sharing** - Get a public URL in seconds
8
+ - 📁 **No upload** - Files stream directly from your machine
9
+ - 🎨 **VS Code-style UI** - Beautiful dark theme file browser
10
+ - 👁️ **File preview** - View text, code, and images in-browser
11
+ - 📥 **ZIP download** - Download entire directories with one click
12
+ - 🔒 **Password protection** - Secure your share with a password
13
+ - 📱 **QR code** - Easy mobile sharing with terminal QR code
14
+ - 📊 **Live stats** - View count and bandwidth in real-time
15
+ - ⏱️ **Custom duration** - Sessions from 1-120 minutes
16
+ - 🚫 **Exclude files** - Skip .git, node_modules, etc.
13
17
 
14
18
  ## Installation
15
19
 
20
+ ### Using npx (no install required)
16
21
  ```bash
17
- npm install -g fwdcast
22
+ npx fwdcast
18
23
  ```
19
24
 
20
- Or use directly with npx:
21
-
25
+ ### Global install
22
26
  ```bash
23
- npx fwdcast
27
+ npm install -g fwdcast
28
+ fwdcast
24
29
  ```
25
30
 
26
31
  ## Usage
27
32
 
28
- Share the current directory:
29
-
33
+ ### Basic - Share current directory
30
34
  ```bash
31
35
  fwdcast
32
36
  ```
33
37
 
34
- Share a specific directory:
35
-
38
+ ### Share a specific folder
36
39
  ```bash
37
40
  fwdcast /path/to/folder
38
41
  ```
39
42
 
40
- Use a custom relay server:
43
+ ### Password protect your share
44
+ ```bash
45
+ fwdcast -p mysecretpassword
46
+ ```
47
+
48
+ ### Show QR code for mobile
49
+ ```bash
50
+ fwdcast -q
51
+ ```
52
+
53
+ ### Custom session duration (60 minutes)
54
+ ```bash
55
+ fwdcast -d 60
56
+ ```
57
+
58
+ ### Exclude additional files/folders
59
+ ```bash
60
+ fwdcast -e .git node_modules dist
61
+ ```
41
62
 
63
+ ### Use a custom relay server
42
64
  ```bash
43
65
  fwdcast --relay wss://your-relay.com/ws
44
66
  ```
45
67
 
68
+ ### Combine options
69
+ ```bash
70
+ fwdcast ~/Documents -p secret123 -d 60 -q
71
+ ```
72
+
73
+ ## CLI Options
74
+
75
+ | Option | Description | Default |
76
+ |--------|-------------|---------|
77
+ | `-p, --password <pass>` | Require password to access | None |
78
+ | `-d, --duration <mins>` | Session duration (1-120) | 30 |
79
+ | `-q, --qr` | Show QR code in terminal | false |
80
+ | `-e, --exclude <patterns>` | Exclude files/folders | See below |
81
+ | `-r, --relay <url>` | Custom relay server | Public relay |
82
+
83
+ ### Default Excludes
84
+ These are always excluded: `.git`, `node_modules`, `.DS_Store`, `__pycache__`, `.env`
85
+
46
86
  ## How It Works
47
87
 
48
- 1. fwdcast scans your local directory
49
- 2. Connects to a relay server via WebSocket
50
- 3. You get a public URL to share
51
- 4. Viewers request files through the relay
52
- 5. Files stream directly from your machine - nothing is uploaded
88
+ 1. **You run fwdcast** - CLI scans your directory and connects to relay
89
+ 2. **Get a URL** - Relay assigns a unique session URL
90
+ 3. **Share the URL** - Anyone with the link can browse your files
91
+ 4. **Files stream on-demand** - When someone requests a file, it streams from your machine
92
+ 5. **Session ends** - When you stop the CLI or session expires, files become inaccessible
93
+
94
+ ## Live Stats
95
+
96
+ While sharing, fwdcast shows real-time statistics:
97
+ ```
98
+ [2 viewers] Total: 15.3 MB | Requests: 42 | 1.2 MB/s
99
+ ```
53
100
 
54
101
  ## Limits
55
102
 
56
103
  - Maximum total size: 500 MB
57
104
  - Maximum file size: 100 MB per file
58
- - Session duration: 30 minutes
105
+ - Session duration: 1-120 minutes (default: 30)
59
106
  - Maximum concurrent viewers: 3
60
107
 
108
+ ## Security Considerations
109
+
110
+ - **Password protection** - Add `-p` flag to require authentication
111
+ - **Temporary by design** - Sessions auto-expire, reducing exposure window
112
+ - **No persistence** - Nothing is stored on the relay server
113
+ - **Path traversal protection** - CLI validates all file paths
114
+ - **Default excludes** - Sensitive files like `.env` are excluded by default
115
+
116
+ **⚠️ Warning**: Without a password, anyone with your session URL can access your shared files.
117
+
61
118
  ## Self-Hosting
62
119
 
63
120
  You can run your own relay server. See the [relay documentation](https://github.com/vamsiy/fwdcast/tree/main/relay) for setup instructions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fwdcast",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Temporary file sharing - stream local files as a public website without uploading",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -9,7 +9,8 @@
9
9
  },
10
10
  "files": [
11
11
  "dist/**/*",
12
- "scripts/**/*"
12
+ "scripts/**/*",
13
+ "README.md"
13
14
  ],
14
15
  "scripts": {
15
16
  "build": "tsc",