🐀 Hauls every part of your big downloads — concurrent, resumable, single Go binary.
packrat is a cross-platform downloader for multi-part file hosting, made for grabbing FitGirl repacks from the terminal: it reads a text file of the repack's landing-page links, resolves each one to its direct download link, and fetches every part concurrently into one directory per archive.
- Plain text input: one link per line, markdown bullets welcome, broken lines skipped with a note instead of failing the run.
- One output directory per archive, parts kept together and ordered.
- Live progress view with per-part bars, speed and a pause/resume key.
- Script-friendly
--plainoutput that honorsNO_COLOR. - Byte-exact resume: interrupted runs keep
.partfiles, rerunning the same command continues where it stopped. - Graceful stop that preserves partial parts, plus explicit exit codes for scripting.
- Automatic retries with backoff; host-imposed
Retry-Afterpauses are honored instead of hammered. - Polite link resolution: paced and jittered requests, live cooldown display, and sustained rate limiting ends the run early with a clear rerun-later message.
- Resolves without a real browser: pages are fetched with a TLS fingerprint that impersonates one.
--dry-runto preview the download plan before touching the network.- Native binaries for Linux, macOS and Windows.
Copy your repack's part links into a text file (one per line), then run:
./packrat links.txt| Provider | Website |
|---|---|
| FuckingFast | https://fuckingfast.co |
| FileKeeper | https://filekeeper.net |
Note
Requests toward the provider are paced and jittered, and rate-limit answers are waited out exactly as the host asks for. Politeness is what keeps long runs working.
Tip
The engine/host seams make adding a provider a small, isolated job. Pull requests are welcome.
- Download the Windows archive from the latest release.
- Extract it to a directory of your choice.
- Open PowerShell or CMD in that directory and run
packrat.exeon a links file.
Download the archive matching your platform, extract it and make the binary executable:
tar -xzf packrat-macos-arm64.tar.gz
chmod +x packratOptionally move it somewhere available in your PATH:
sudo mv packrat /usr/local/bin/Clone the repository and build the binary:
git clone https://github.com/EliasLd/packrat.git
cd packrat
go build -o packrat ./cmd/packratpackrat [options] links.txtOptions must come before the links file.
| Option | Description |
|---|---|
-o dir |
Output root directory. Default: downloads. |
-c int |
Parallel downloads. Default: 8. |
-rc int |
Parallel link resolutions. Default: 3. |
-retries int |
Attempts per part. Default: 5. |
--plain |
Never style the output — for pipes, CI and logs. |
--dry-run |
Print the planned download layout, resolve and download nothing. |
--version |
Print the build version and exit. |
# one link per line; '- ' bullets and [text](url) markdown links work too
https://fuckingfast.co/AbC123#MyGame.repack.part01.rar
- https://fuckingfast.co/DeF456#MyGame.repack.part02.rar
The URL fragment names the download: a <name>.part01.rar style fragment
downloads into downloads/<name>/ and keeps every part in order:
downloads/
└── MyGame.repack/
├── MyGame.repack.part01.rar
├── MyGame.repack.part02.rar
└── MyGame.repack.part03.rar
Without a fragment, the part lands in unknown/ and keeps the file name
the host page provides.
While downloading on a terminal:
ppauses and unpauses the whole run.qorctrl-cstops gracefully; unfinished parts stay as safe.partfiles.- Rerun the exact same command afterwards to resume.
When the host asks for patience, the view says so instead of pretending:
[rate limit] cooling 30s: host rate limit (status 429): retry after 30s
0 ok
1 some part(s) failed
2 bad usage
130 interrupted
packrat -o /mnt/archive links.txtpackrat -c 2 -retries 8 links.txtpackrat --dry-run links.txtpackrat --plain links.txt | tee run.logContributions are very welcome: new providers (the host seams are built for it), fixes for existing ones, UI or engine improvements, tests and documentation.
Development needs Go 1.27 or newer. make test runs the suite with the race
detector, make lint runs golangci-lint. Feature work happens on feature
branches with conventional commits.
If packrat is useful to you, consider leaving a ⭐ on the repository, it's always appreciated.
Independent open-source tool, not affiliated with any file hosting or repack service. Use it for content you are entitled to download, and respect the terms of service of the hosts you point it at.
