2cce0fcde1fea52607ba6f65544bc999fd0936ae
max-connection-per-server, split and min-split-size were tagged HTTP, so they only appeared under --help=all. Tag them Basic so they show in the default --help, where users expect the core connection knobs.
got
A command-line download tool in Go. It fetches HTTP(S) files over multiple
connections and downloads BitTorrent magnets and .torrent files — one binary,
familiar flags.
Build
go build -o got .
Needs Go 1.25+.
Usage
# HTTP download with 16 connections
got -x16 -s16 https://example.com/big.iso
# let got pick the connection count from the file size
got --auto-split https://example.com/big.iso
# resume an interrupted download
got -c https://example.com/big.iso
# one file from several mirrors (connections spread across servers,
# a dead mirror falls over); -Z downloads them as separate files instead
got -x4 https://a.example/big.iso https://b.example/big.iso
# a torrent or magnet; seed for 30 minutes after finishing
got --seed-time=30 ubuntu.torrent
got 'magnet:?xt=urn:btih:...'
# many downloads, two at a time
got -j2 -i urls.txt
Run got --help (or --help=all) for every option.
Common options
| flag | meaning | default |
|---|---|---|
-d, --dir |
output directory | . |
-o, --out |
output filename | from URL |
-c, --continue |
resume a partial download | false |
-x, --max-connection-per-server |
connections to one server (1–16) | 1 |
-s, --split |
split a download into N connections | 5 |
--auto-split |
choose connections from file size (overrides -x/-s) |
false |
-j, --max-concurrent-downloads |
downloads at once | 5 |
--max-overall-download-limit |
global speed cap | 0 (off) |
--checksum |
verify the finished file: TYPE=DIGEST (sha-256, sha-1, …) |
|
--seed-time |
minutes to seed after a torrent finishes | by ratio |
--seed-ratio |
stop seeding at this ratio | 1.0 |
-S, --show-files |
list torrent files and exit | |
-q, --quiet |
no progress output | false |
Resume
HTTP downloads resume from a small <file>.got sidecar — just re-run with -c.
Torrents resume from the data already on disk. To resume across runs, point
--save-session and -i at the same file:
got -c --save-session=got.session -i got.session <urls/magnets...>
Notes
- BitTorrent uses
anacrolix/torrent; HTTP uses the standard library. - Not implemented: FTP/SFTP, Metalink, and the JSON-RPC server.
- When several torrents run at once,
--max-download-limit/--max-upload-limitapply per run rather than per torrent (--max-overall-*are exact).
Description
Languages
Go
100%