Smart Download Manager

DownloadPilot

A download queue that survives being killed. Resuming is just running it again.

Free right now — no account, no card

Get DownloadPilot free Windows & Mac · one file, nothing to install

Preview

1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.

Interface design DownloadPilot, 1 of 1
Screenshot DownloadPilot running on Windows today

Free while we’re in preview

Get DownloadPilot

A download queue that survives being killed. Resuming is just running it again.

The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.

One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.

Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.

  • One file — no installer
  • Reaches only what you point it at
  • Source code published below

Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, DownloadPilot is included in every plan along with the rest of the range.

Kill it mid-run and find out

DownloadPilot rewrites the whole queue file to disk after every single item finishes, success or failure, via a temp file and a rename. So if the machine reboots at item 40 of 300, the 39 that finished are recorded as done, item 40 is retried on the next run, and the rest are still queued. downloadpilot run --queue q.json picks up exactly where it stopped, and re-downloads nothing.

The three commands

add appends a URL and an output path, optionally with an expected SHA-256. run drains the queue across as many workers as you ask for, four by default. status prints the table, or JSON, without touching the network.

Two things it deliberately doesn’t do

Each item is a plain sequential HTTP transfer. It won’t split one file across ranged connections, so for a single enormous ISO you want GrabFlow. And a failed item stays failed until you pass --retry-failed, which stops a dead URL being hammered on every run.

Downloads land at <out>.part first. A file appearing at its real name is the signal it genuinely finished.

Reading on the job itself

Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams

A working CLI prototype of the persistent download-queue engine: hand it many URLs, it downloads them with concurrent workers and saves queue state after every single item — proven crash-survivable by SIGKILL-ing a run mid-download and confirming a second run correctly resumes only what's left. Segmented per-item downloads are still on the roadmap (GrabFlow covers that half).

Naming status

Working name only — brand verdict **AVOID** (Very High). Collision: DownloadPilot / Secure Downloader history. Rename completely.

What it draws on

Existing paid software whose best ideas shaped this program: Internet Download Manager, WinRAR, Bandizip Professional, NetLimiter.

Command line

There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.

downloadpilot - persistent, concurrent download queue (DownloadPilot CLI prototype)

Usage:
  downloadpilot add --queue <file> <url> --out <file> [--sha256 HASH]
  downloadpilot run --queue <file> [--workers N] [--retry-failed]
  downloadpilot status --queue <file> [--json]
  downloadpilot help
  downloadpilot version

Commands:
  add     Append one item to a queue file (creates it if missing).
  run     Process all queued (and, with --retry-failed, failed) items
          using a pool of concurrent workers. Saves the whole queue to
          disk after every item finishes, so it can survive being
          interrupted and resumed with another "run".
  status  Print the current status of every item in a queue file.
          Read-only; does not download anything.

Examples:
  downloadpilot add --queue q.json https://example.com/a.bin --out a.bin
  downloadpilot add --queue q.json https://example.com/b.bin --out b.bin --sha256 abcd1234...
  downloadpilot run --queue q.json --workers 4
  downloadpilot run --queue q.json --retry-failed
  downloadpilot status --queue q.json

Recorded from the shipped binary, not written by hand.

Source

Every file the program is built from:

console.go · console_test.go · guided.go · main.go

SHA-256 checksums · build instructions & scope notes · full build plan