Concurrent command-line download manager. Inspired from Leech macOS application!
- Concurrent chunked downloads (parallel byte-range fetches)
- Multiple URL support (pipe and/or arguments)
- Progress bar with real-time terminal output
- Bandwidth limiting (shared token bucket across all downloads)
- Resume support (
.partfiles, continues from where it left off) - Single-chunk fallback for servers without
Accept-Ranges - Structured logging with
log/slog(debug mode via-verbose)
- Go 1.26+
brew tap vigo/leech
brew install leechCask Conflict: Homebrew's official cask registry has an app called Leech (a GUI download manager by Many Tricks). If that cask is installed,
brew install leechwill install the formula but skip linking the binary. To fix this:brew install vigo/leech/leech brew link --overwrite leech
go install github.com/vigo/leech@latestgit clone https://github.com/vigo/leech.git
cd leech
make build# single URL
leech https://example.com/file.zip
# multiple URLs
leech https://example.com/file1.zip https://example.com/file2.zip
# pipe URLs
cat urls.txt | leech
# with options
leech -verbose -chunks 10 -limit 5M -output ~/Downloads https://example.com/file.zip-version display version information
-verbose verbose output / debug logging (default: false)
-chunks N chunk size for parallel download (default: 5)
-limit RATE bandwidth limit, e.g. 5M, 500K (default: 0, unlimited)
-output DIR output directory (default: current directory)leech -limit 1M ... # 1 MB/s total
leech -limit 500K ... # 500 KB/s total
leech -limit 2G ... # 2 GB/s total (why not)make build # build binary
make test # run tests with race detector
make lint # run golangci-lint v2
make clean # remove binary and .part files
make install # go installpre-commit install
pre-commit run --all-files- Uğur "vigo" Özyılmazel - Creator, maintainer
All PR's are welcome!
fork(https://github.com/vigo/leech/fork)- Create your
branch(git checkout -b my-feature) commityours (git commit -am 'add some functionality')pushyourbranch(git push origin my-feature)- Than create a new Pull Request!
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
This project is licensed under MIT