Gopeed Review: A Fast, Scriptable, No-Bloat Download Manager for Developers
Gopeed is a GPLv3 open-source download manager built with Go and Flutter. Practical review of its HTTP, BitTorrent, and ed2k support, REST API, JavaScript extension system, and honest limits.
Most download managers are either feature-starved utilities that stall on large files, or legacy Java beasts that ship a toolbar and a crypto miner in the same installer. Gopeed sits in neither camp. It is a cross-platform download manager built with Go on the backend and Flutter on the frontend, open-source under GPLv3, with 24,600+ GitHub stars as of early 2026 and an active release cadence — v1.9.3 shipped in March 2026, less than two months after v1.9.0. If you want to understand what it actually offers before committing time to it, this review covers the specifics.
What Gopeed supports and how it handles it
Protocol coverage is the first thing to verify with any download manager. Gopeed handles HTTP/HTTPS, BitTorrent (including DHT, PEX, and magnet links), and ed2k — the last of which was added as a notable addition in v1.9.3. For HTTP downloads, it splits files into segments and fetches them in parallel over multiple connections, which noticeably improves throughput on servers that allow range requests. This is standard segmented downloading, not magic, but it works reliably.
BitTorrent support is full-featured rather than bolted-on. You get selective file downloading within a torrent, bandwidth throttling, and peer management. It is not a replacement for a dedicated client like qBittorrent if you live in the BitTorrent ecosystem — qBittorrent has more tuning knobs per-torrent — but for developers who occasionally pull large dataset torrents or open-source ISO distributions without wanting a separate torrent client running, Gopeed handles it without friction.
Platform coverage is genuinely broad: Windows (including ARM as of v1.9.0), macOS, Linux, Android, iOS, Docker, and QNAP NAS packages. The Docker image runs a headless web interface, which makes Gopeed practical as a self-hosted download service on a home server or VPS. There is also a command-line tool installable via go install for scripted or terminal-only workflows.
The backend communicates with the Flutter UI through platform-appropriate sockets — Unix sockets on Linux and macOS, TCP on Windows, standard HTTP for web deployments. This architecture means the backend can run headlessly while any frontend connects to it, which is what makes the Docker and web-UI modes work.
The extension system and REST API
This is where Gopeed earns its developer-audience reputation. The extension system runs on Goja, a Go-implemented ECMAScript 5.1 engine. That last part matters: extensions are limited to ES5.1, not modern JavaScript. You can work around most of it with a Webpack build step — the official scaffolding uses Webpack — but if you are used to writing ES2022 modules directly, there is friction.
Extensions hook into the download lifecycle and can intercept requests, transform URLs, and add new download sources. The official extension catalog includes integrations for YouTube, Bilibili, GitHub Release assets, GitHub repository batch downloads, Hugging Face datasets, MediaFire, TikTok, Instagram Reels, Pinterest, and Pixiv. An extension store launched in v1.9.2 centralizes discovery. The gopeed-js development kit on GitHub provides TypeScript definitions, a REST client abstraction, and the scaffolding CLI — so extension development is at least structured, even if the ES5.1 runtime is a constraint.
The REST API covers everything you can do in the UI: create tasks, pause, resume, delete, query task status, and configure global settings. Webhooks, added in v1.8.3, let external systems receive push notifications when task states change — useful if you want Gopeed wired into a broader automation pipeline without polling. Post-task script hooks arrived in v1.9.1, allowing you to trigger arbitrary scripts after a download completes, which closes the loop for most automation needs without requiring a separate process watching the download directory.
If you are comparing this to aria2, the distinction is interface and ergonomics rather than raw capability. aria2 is a CLI daemon with a JSON-RPC API that has been stable for years; it is extremely lightweight and has a large ecosystem of frontends. Gopeed gives you a native GUI by default, an extension store, and a more modern codebase, but trades aria2’s maturity and CLI-first ergonomics for those features. aria2 also supports FTP, SFTP, and Metalink, which Gopeed does not. If your workflow is entirely scripted and headless, aria2 is arguably simpler; if you want a maintained GUI that also exposes an API, Gopeed is the more practical choice.
Versus JDownloader: JDownloader has deep integration with file-hosting services (Mega, one-click hosts, automated CAPTCHA solving, premium account management) that Gopeed does not attempt. JDownloader is a Java application with a heavyweight UI and a long history of bundled junk in its installer — Gopeed is GPLv3, has no installer extras, and ships native binaries. If you need file-hoster automation, JDownloader still wins that specific category. If you want a clean, scriptable tool for HTTP and BitTorrent, Gopeed is the better fit.
Honest limits
The browser extension is the weakest part of the experience. It supports Chrome, Edge, and Firefox, and the workflow is: install the extension, point it at your running Gopeed instance via IP/port/token, and downloads the extension intercepts get routed to Gopeed instead of the browser’s native downloader. In practice, interception is unreliable — users report that downloads frequently stay in the browser rather than being forwarded, the extension loses its connection after a restart and requires manual reconfiguration, and the token setup is not obvious to configure correctly the first time. There is an open issue on the Gopeed GitHub tracker about the Flatpak package shipping an outdated version that causes browser extension incompatibility, which suggests package manager builds may lag behind what the extension expects.
The extension system’s ES5.1 ceiling is a real constraint if you are building anything moderately complex. It is workable with a build step, but it adds tooling overhead to what should be a simple scripting layer.
Mobile background downloading works, but with the limitations iOS and Android impose on background processes generally — long downloads on mobile will be interrupted when the OS suspends the app. This is not a Gopeed-specific failure, but worth setting expectations.
The anonymous analytics added in v1.9.0 are opt-out rather than opt-in. The project has not published a detailed breakdown of what is collected. For privacy-sensitive environments, this is worth verifying in the settings before deploying.
Finally, Gopeed does not support FTP, SFTP, Metalink, or premium file-hoster accounts. If any of those are requirements, Gopeed is not the right tool regardless of its other merits.
Should you use it?
Gopeed is well-suited for developers who want a maintained, non-bloated download manager with a usable GUI across all major platforms, the option to run headlessly via Docker with a REST API, and an extension system for adding site-specific download logic. The Go backend is lightweight, the release cadence is fast (roughly monthly), and the codebase is genuinely open-source under GPLv3 with 24,600+ community stars.
Where it falls short: the browser extension is unreliable enough to not treat as a core feature, the extension runtime is limited to ES5.1, and it does not cover FTP or premium file-hoster integrations. If your use case fits within HTTP, BitTorrent, and ed2k — and you want programmatic control through a REST API or webhooks — Gopeed delivers that without the overhead that has historically made download managers unpleasant to use.
The project is hosted at github.com/GopeedLab/gopeed. Installation packages for all platforms are available at the official docs site.
FAQ
Does Gopeed work without a GUI, for server or Docker deployments? +
How do Gopeed extensions differ from aria2 scripts or plugins? +
Is Gopeed safe to use, given it requires network access and an API token? +
Related tools
Beehiiv
Newsletter platform with built-in ad network and Boost referrals.
Try Beehiiv →
Webflow
Visual site builder with real CSS export and a CMS that scales.
Try Webflow →
Audiorista
No-code audio app builder for podcasters and audio creators.
Try Audiorista →
Some links above are affiliate links. We may earn a commission if you sign up. See our disclosure for details.
Related reading
2026-05-21
ChatGPT Exporter: Save Conversations to Word, PDF, and Markdown Locally
A practical guide to browser extensions that export ChatGPT conversations to PDF, Word, and Markdown — covering format fidelity, privacy tradeoffs, and the tools worth using.
2026-05-21
InfiniDesk 3 and the Case for Hotkey-Driven Virtual Desktops on Mac
macOS Spaces frustrates developers who need predictable, named workspaces. Here is how InfiniDesk 3 fits into the broader category of hotkey-driven desktop tools — and what to evaluate before buying.
2026-05-21
Joplin Review: The Open-Source, Privacy-First Note App for Developers
Joplin offers E2EE sync, Markdown-native editing, a plugin API, and full data portability — all free and open source. Here's where it excels and where it falls short.
2026-05-21
Lightdash Review: Open-Source BI Built on dbt
Lightdash turns your dbt models into explorable dashboards without redefining metrics. An honest look at the dbt integration, self-hosting trade-offs, and where it falls short of mature BI tools.
2026-05-21
Lowdefy Review: Building Internal Tools and AI Agents in YAML
Lowdefy lets you build internal tools, admin panels, and now AI-agent UIs by writing YAML config instead of React. Here is what that looks like in practice, where it works well, and where it runs out of rope.
Get the best tools, weekly
One email every Friday. No spam, unsubscribe anytime.