3fc29e3a860126860b04fc2a36e4ee1ad8ea38d9
lineMany crammed every download onto one line as name+percent, dropping the speed column that answers "which one is stalled" and producing ugly double brackets for names like "[Gecko]". render N>1 as a redrawn block: one row each (name, bar, percent, DL speed, ETA/stalled), a header with the active count and totals, falling back to a single summary line when the table would overflow the window. one download keeps its dashboard.
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%