# 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 ```sh go build -o got . ``` Needs Go 1.25+. ## Usage ```sh # HTTP download with 16 connections got -x16 -s16 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 | | `-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 `.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: ```sh got -c --save-session=got.session -i got.session ``` ## Notes - BitTorrent uses [`anacrolix/torrent`](https://github.com/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-limit` apply per run rather than per torrent (`--max-overall-*` are exact).