You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fast E2EE WebRTC file transfer (DTLS by default, optional PQ) with human-readable pairing codes.
3
+
Fast end-to-end encrypted (E2EE) file transfer over WebRTC with short, human-readable pairing codes. The CLI speaks DTLS by default and can opt-in to a post-quantum (PQ) handshake with SAS confirmation.
4
4
5
-
- Post-quantum (PQ) mode with SAS verification for authenticated setup.
6
-
- Fast, E2EE transfers over WebRTC data channels (DTLS by default).
7
-
- Code-based rendezvous (no accounts or prior pairing).
8
-
- Single file, directory, or multiple paths (multi-path → `.tar` on the wire).
9
-
- Prebuilt binaries for Linux/macOS/Windows, or build from source.
5
+
## Installation
10
6
11
-
## Install
7
+
Requires Node.js **22 or newer** for development builds.
12
8
13
9
### npm
14
10
15
11
```bash
16
-
npm i -g noisytransfer-cli
12
+
# CLI (global)
13
+
npm i -g @noisytransfer/cli
17
14
# or as a lib:
18
-
npm i noisytransfer-cli
15
+
16
+
# library usage (local dependency)
17
+
npm i @noisystransfer/cli
18
+
19
+
# quick try without installing
20
+
npx noisytransfer-cli --help
19
21
```
20
22
21
23
### Binaries
22
24
23
-
Download from your releases (or build locally):
25
+
Download the latest release artifacts or build them locally:
24
26
25
27
```bash
26
28
# local build
27
29
npm run build
28
-
npm run pkg
29
-
# binaries in ./release or ./dist (based on your scripts)
30
+
npm pack
30
31
```
31
32
32
33
## Quick start
@@ -44,9 +45,9 @@ nt send report.pdf ./docs ./assets
44
45
You’ll see:
45
46
46
47
```
47
-
Code: 49b47940
48
-
nt 49b47940
49
-
nt recv --code 49b47940 --relay http://127.0.0.1:40971
48
+
Code: 4932
49
+
nt 4932
50
+
nt recv 4932
50
51
```
51
52
52
53
### Receive
@@ -55,39 +56,22 @@ You can use **any** of the following:
55
56
56
57
```bash
57
58
# simplest: positional shorthand
58
-
nt 49b47940
59
+
nt 4932
59
60
60
61
# explicit command & code, default output = current dir
61
-
nt recv 49b47940
62
-
63
-
# or with an explicit output directory
64
-
nt recv ./downloads 49b47940
65
-
66
-
# or with the flag form
67
-
nt recv ./downloads --code 49b47940
68
-
69
-
# skip redeem if you already have the appID
70
-
nt recv ./downloads --app 49b47940-0cb1-43b3-bdb9-6f7f31f9a47d
71
-
```
72
-
73
-
To write to stdout:
74
-
75
-
```bash
76
-
nt recv - --code 49b47940 > received.bin
62
+
nt recv 4932
77
63
```
78
64
79
65
### Post-quantum (PQ) mode
80
66
81
-
Append `-pq` to the code or pass`--pq`:
67
+
Pass`--pq`:
82
68
83
69
```bash
84
70
# sender prints "Code: 5527e74d-pq"
85
-
nt send --pq ./big.iso
86
-
71
+
nt send ./big.iso --pq
72
+
> Code: 4932
87
73
# receiver can use the suffix, or just --pq explicitly
88
-
nt recv ./downloads 5527e74d-pq
89
-
# or
90
-
nt recv ./downloads --code 5527e74d --pq
74
+
nt recv 1234-pq ./downloads
91
75
```
92
76
93
77
## Behavior & flags
@@ -96,75 +80,9 @@ nt recv ./downloads --code 5527e74d --pq
96
80
- Multi-path sends are **tarred**; receiver writes `bundle.tar`. If a file exists and `--overwrite` is not set, the receiver dedupes as `bundle-1.tar`, `bundle-2.tar`, …
97
81
-`--overwrite`: replace existing file instead of deduping.
98
82
-`-y, --yes`: auto-accept SAS (useful for non-interactive invocations). Does **not** imply `--overwrite`.
99
-
-`--json`: JSON logs on stderr (all debug routed through the logger).
100
83
-`-v` (repeatable): increase verbosity; includes `[NT_DEBUG]` traces.
101
84
- Filenames are sanitized on the receiver (no path traversal / reserved names). Output directory is always the **receiver’s** choice.
102
85
103
-
## Logging
104
-
105
-
- Human-facing lines (stable for scripts/tests):
106
-
-`Code: …`, `nt …` hints
107
-
-`Receiving → …`
108
-
- SAS lines: `[SAS A] …`, `[SAS B] …`
109
-
- The two-column progress line
110
-
111
-
- Debug: `-v` or `NT_DEBUG=1` (on stderr).
112
-
- Structured: `--json` (each line is a JSON object on stderr).
- Rendezvous codes are short-lived; both sides display a 6-digit SAS you can compare out-of-band.
198
108
- The receiver owns the destination directory; announced filenames are sanitized to safe **leaf** names.
199
109
200
-
## Troubleshooting
201
-
202
-
-**“recv: either --code or --app is required”** – pass a code: `nt recv ./out --code <8-hex>` or just `nt <code>`.
203
-
-**NAT / firewalls** – set `--relay` to your reachable rendezvous service.
204
-
-**Windows** – native WebRTC addon is embedded; if you build locally, ensure the `.node` is present in `assets/native/win32-*` (your scripts copy these into `dist/assets/native/...` for the binary).
205
-
206
110
## Future features
207
111
Status: currently disabled/broken; will be re-enabled with proper tests.
0 commit comments