Downloader Behzad Khosravifar
winget install --id=bezzad.Downloader -e Fast cross-platform multi-connection download manager.
winget install --id=bezzad.Downloader -e Fast cross-platform multi-connection download manager.
<img src="https://snapcraft.io/en/light/install.svg" />
A fast, reliable, cross-platform download manager with a clean desktop UI for Windows, macOS and Linux. It splits each file into multiple connections for maximum speed, lets you pause and resume any time, and organizes your downloads with queues and a scheduler — all in a simple interface anyone can use.
Built with Avalonia UI on .NET and powered by the Downloader engine.
.m3u8 streams → a single playable video via the HLS plugin). Multi-part downloads show live "Part 3/10" progress and an "Assembling…" step, and resume where they left off after a restart.ollama.com link or just type a model name like gemma3:12b, download it at full multi-connection speed, then click Add to Ollama to install it into your local Ollama in one step (checksum-verified). Ships built-in, together with the plugin (paste → get the latest release for your OS).
The app is fully self-contained — every release ships with everything it needs bundled in, so there are no prerequisites to install (no .NET runtime, no FFmpeg, no extra libraries).
macOS (Homebrew):
brew tap bezzad/tap && brew install --cask downloader
This installs Downloader.app into your Applications folder — open it from Launchpad, Spotlight (⌘-Space → "Downloader"), or Finder like any other app.
> - Recent Homebrew versions ask you to trust a third-party tap before installing. If you see that prompt, run brew trust bezzad/tap (or set HOMEBREW_NO_REQUIRE_TAP_TRUST=1) and re-run the install.
> - The app isn't notarized yet. The Homebrew cask removes the quarantine flag automatically on install, so it should launch normally — you do not need to run xattr by hand. If macOS still blocks the first launch, right-click Downloader in Applications → Open, or run xattr -dr com.apple.quarantine "/Applications/Downloader.app".
Linux (Snap) — recommended; auto-updates via the Snap Store:
sudo snap install downloader
> Pending first publish to the Snap Store. Until it's live, use the install script below or Manual download.
Linux (script) — downloads the latest release and adds a menu entry + icon:
curl -fsSL https://raw.githubusercontent.com/bezzad/Downloader.Desktop/main/scripts/install.sh | bash
Windows (winget):
winget install bezzad.Downloader
This installs the portable app and puts Downloader on your PATH — launch it from the Start menu or a terminal. Update later with winget upgrade bezzad.Downloader.
> The short form winget install downloader also resolves to this package via its moniker (if another package matches first, use the full id above).
Downloader-osx-*.tar.gz and drag Downloader.app into your Applications folder, then launch it from Launchpad/Spotlight.Downloader executable. That's it.> The version number is shown under Settings → About and increases automatically with every release. With Settings → Check for updates automatically on, the app downloads a newer release in the background, then shows an “Update Downloader” button at the bottom of the left menu plus a system notification. Click it (or just close the app) to install — it restarts into the new version. Snap builds update through the Snap Store instead, so the in-app updater is disabled there.
> First launch on an unsigned build: Windows SmartScreen → More info → Run anyway; macOS Gatekeeper → right-click → Open (or xattr -dr com.apple.quarantine ).
Ctrl+N). In the dialog you can choose the save folder, optionally set a name, and pick a queue. To add several at once, paste multiple links (one per line).Esc to close).Your downloads list and settings are saved automatically. Config file location:
~/.config/Downloader/config.json~/Library/Application Support/Downloader/config.json%APPDATA%\Downloader\config.jsonA companion browser extension (Chrome, Edge, Firefox) sends links straight to the app:
.m3u8) media.Install (store listings pending review — see src/browser-extension):
src/browser-extension/README.md to load the unpacked extension.Other programs on your computer can add and manage downloads — handy for batch jobs and scripts (the most-requested developer feature, #2):
# From a terminal / script: add a download (starts the app if it isn't running)
Downloader add --url https://example.com/file.zip --path ~/Downloads
# Or over the local HTTP API from any language (Node.js, Bun, Python, curl, …)
curl -X POST http://127.0.0.1:15151/api/add -d '{"url":"https://example.com/file.zip"}'
You can also list all downloads (with progress and status) and pause / resume / cancel / retry / remove each one. Everything is local-only (loopback, never exposed to the network) and gated by
the same Settings → Browser extension & local API toggle, on by default. If another program is
already using port 15151, the app automatically switches to the next port in 15151–15155 — the
extension and CLI find it on their own, and Settings shows the current address.
📖 Full reference with examples: docs/local-api.md
Please report bugs and request features through GitHub Issues — not by Telegram or email. Issues are tracked, searchable, and handled through an automated workflow, so this is the fastest way to get a response (and it lets others find the same fix). Before opening one, search existing issues to avoid duplicates.
git clone https://github.com/bezzad/Downloader.Desktop.git
cd Downloader.Desktop/src
dotnet run --project Downloader.Desktop/Downloader.Desktop.csproj
Needs the .NET 10 SDK. Full developer docs — publishing, packaging, releasing and macOS bundling — are in CONTRIBUTING.md.
github.com/owner/repo