A download engine you host and fully own β permanent resume, multi-connection acceleration, live speed control, an immersive 3D dashboard, and optional browser capture. Run it on your laptop, home server, or NAS and drive it from any browser. 100% open source (MIT).
The screenshot is captured from the actual Vite dashboard at the repository's verified public-readiness head. The dashboard works without a paid service; API and live-download data come from the self-hosted Go engine.
Most of us still lose downloads to a dropped connection, a closed tab, or a reboot β and the tools that fix that are often desktop-only or tied to a single machine. Pounce takes a different angle: it's a small engine you run yourself that does the real downloading β splitting files across many connections, persisting per-segment progress to disk, and resuming exactly where it left off, even after a restart β controlled from a beautiful 3D web dashboard you can open from any device on your network.
Think of it less as "an app" and more as your own personal download service: self-hosted, always-on if you want it, and entirely yours.
- π Self-hostable by design β one engine, reachable from your laptop, phone, or another machine. Your files and history never leave your hardware.
- πͺΆ Single static binary, zero runtime deps β the engine is pure Go standard library. No Electron, no JVM, no background bloat. Drop it on a Raspberry Pi or a NAS and go.
- π Browser, not a desktop install β the UI is a web dashboard, so the same Pounce works on every OS and every screen.
- π Hackable & extensible β a clean REST + SSE API and a small codebase meant to be read and forked.
- π¨ Actually nice to look at β a full-3D, themeable dashboard, because tools you use daily should feel good.
These aren't reinventions β they're a combination aimed at one goal: a download manager anyone can run, own, and trust, for free.
Pounce exists thanks to the people who pioneered this space. Tools like aria2, yt-dlp, JDownloader, and others shaped what a download manager can be β and Pounce is our open contribution back to that lineage, not a replacement for any of them. Where it helps, Pounce is designed to cooperate (for example, resolving media via yt-dlp) rather than compete. If another tool serves you better, use it β and we'd love to learn from it. πΎ
Because Pounce is a service you host, you can drive it from anywhere β your phone on the couch, a laptop in another room, or across the internet through your own tunnel. This is the part most download managers can't do.
- One-command remote mode:
pounce --remotebinds every interface and requires a token (auto-generated and printed at startup). - One-tap phone pairing: the engine prints a ready-to-open link with the token baked in, and the dashboard's π± Pair device panel shows a QR code β scan it and you're in.
- Install it like an app: the dashboard is a PWA β "Add to Home Screen" for a full-screen, offline-aware Pounce.
- Secure by default: remote access always needs a bearer token; for internet exposure, put Pounce behind HTTPS (Caddy/nginx) or a private tunnel (Tailscale/Cloudflare Tunnel).
Full setup, including reverse-proxy and tunnel recipes: docs/REMOTE.md.
- β‘ Multi-connection, segmented downloads β HTTP
Rangerequests, up to 32 parallel streams. - π Permanent resume β per-segment progress is persisted; resume survives app/PC restarts.
- βΈοΈ Pause / resume / cancel β partial data is never thrown away on pause.
- ποΈ Live speed limiting β token-bucket throttle, adjustable per download on the fly.
- π Choose save location β the engine has real filesystem access (unlike a browser).
- π‘ Range/Accept-Ranges detection β gracefully falls back to single-stream when a server won't cooperate.
- π Full 3D dashboard β orbiting progress orbs, glow that tracks throughput, live stats, glassmorphism UI.
- π Zero-dependency engine β pure Go standard library; builds to a single binary.
- π¬ Video/stream capture via yt-dlp
- π₯² Torrent / magnet support via aria2
- ποΈ Scheduler + bandwidth profiles, auto-shutdown
- π§© Browser extension link capture (MV3 scaffold included)
- π± Remote access from phone + auth
- ποΈ SQLite store backend, checksum verification, mirror/multi-source
See docs/ROADMAP.md.
Browser ββΊ 3D Dashboard (React + R3F)
β REST + Server-Sent Events
βΌ
Local Engine (Go daemon, :7766)
segmented β resume β throttle β queue β SSE
β
~/.pounce/meta/*.json (+ .pdownload part files)
Full write-up: docs/ARCHITECTURE.md.
No Go or Node installed? Build and run everything with just Docker:
docker compose up --build # then open http://localhost:7766
# ...or without compose:
docker build -t pounce:local . && docker run --rm -p 7766:7766 pounce:localPrefer make? Run make docker && make docker-run. For contributors with Go + Node, make build / make test / make run cover the rest.
cd engine
go run ./cmd/pounce # listens on http://127.0.0.1:7766cd dashboard
npm install
npm run dev # http://localhost:5173 (proxies to the engine)Build the dashboard, then let the engine serve it:
cd dashboard && npm install && npm run build
cd ../engine && go run ./cmd/pounce --static ../dashboard/dist
# open http://127.0.0.1:7766| Flag | Default | Description |
|---|---|---|
--addr |
127.0.0.1:7766 |
Listen address |
--data |
~/.pounce |
State directory (resume metadata) |
--static |
(none) | Path to built dashboard dist to serve |
--auth-token |
(none) | Require this bearer token on /api routes |
--remote |
false |
Bind all interfaces + require a token (auto-generated if unset); prints device-pairing links |
| Method | Path | Body | Description |
|---|---|---|---|
| GET | /api/downloads |
β | List downloads |
| POST | /api/downloads |
{ url, dir?, connections?, speedLimit? } |
Add + start |
| POST | /api/downloads/{id}/pause |
β | Pause |
| POST | /api/downloads/{id}/resume |
β | Resume |
| POST | /api/downloads/{id}/cancel |
β | Cancel + delete partial |
| POST | /api/downloads/{id}/speed |
{ limit } |
Set speed limit (bytes/s, 0 = unlimited) |
| DELETE | /api/downloads/{id} |
β | Remove from list |
| GET | /api/events |
β | SSE live updates |
PRs welcome! Pounce is intentionally small and modular so it's easy to extend. Start with CONTRIBUTING.md and the roadmap's βgood first issueβ ideas.
MIT Β© Pounce contributors.
β οΈ Use responsibly. Only download content you have the right to access; respect copyright, site terms, and local law.

