Smart Download Manager

FetchForge

One download queue on one box, and everybody on the team can add to it.

Free right now — no account, no card

Get FetchForge 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 FetchForge, 1 of 1
Screenshot FetchForge running on Windows today

Free while we’re in preview

Get FetchForge

One download queue on one box, and everybody on the team can add to it.

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, FetchForge is included in every plan along with the rest of the range.

Why there’s a server involved

A queue in a file on your laptop is a queue nobody else can add to. Your teammate can’t see what you’re pulling and you can’t see theirs. FetchForge runs on a build box or a NAS, holds one queue, and everyone submits to it and watches the same list. One command starts it: a queue file, an output directory, a port, a worker count and a shared token. Then fetchforge submit <url> --server http://buildbox:8080 --as dana from anyone’s machine. There’s a plain HTTP API too, so a teammate without the binary can curl it.

The queue is rewritten atomically on every state change, so restarting the server keeps the history and anything caught mid-flight goes back to queued.

Before you deploy this anywhere that matters

No TLS. The token crosses the network as a cleartext header and so does everything downloaded. One shared token for the whole team, no accounts, no way to revoke one person without rotating it for everybody. The --as name is a label the client picks, not an identity. Trusted network only, or put it behind a proxy that terminates TLS.

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 shared team queue: a real token-authenticated HTTP server holding one download queue that teammates submit to from their own machines, drained concurrently by a worker pool, with the queue persisted across restarts. Verified race-free under Go's race detector. TLS, real accounts and per-user quotas are on the roadmap.

Naming status

Working name only — brand verdict **RENAME** (High). Collision: FetchForge. Rename before launch.

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.

fetchforge 1.0.0 - shared TEAM download queue

One server holds ONE queue. Teammates submit to it from their own machines and
a pool of workers drains it concurrently into a shared output directory.

USAGE
  fetchforge serve  --queue <file> --out <dir> --token SECRET --port N [--workers 4]
  fetchforge submit <url> --server http://host:port --token SECRET [--as NAME]
  fetchforge status --server http://host:port --token SECRET [--json]
  fetchforge help | -h | --help

SERVE FLAGS
  --queue   <file>  shared queue state, persisted across restarts (required)
  --out     <dir>   directory downloads land in (required, created if absent)
  --token   SECRET  shared secret every client must send (required)
  --port    N       TCP port to listen on (required)
  --workers N       concurrent download workers (default 4)
  --host    ADDR    interface to bind (default 0.0.0.0, all interfaces)

SUBMIT / STATUS FLAGS
  --server  URL     base URL of the team server, e.g. http://10.0.0.5:8080
  --token   SECRET  shared secret, must match the server's --token
  --as      NAME    teammate name recorded with the item (submit only)
  --json            print the raw status JSON instead of a table (status only)

HTTP API (all endpoints require header X-Fetch-Token: SECRET, else 401)
  POST /submit   body: {"url":"..."} or a bare URL   -> queues one item
  GET  /status   the whole team's queue plus counts
  GET  /queue    the raw persisted queue document

EXAMPLES
  # on the build box
  fetchforge serve --queue /srv/team.json --out /srv/downloads \
      --token hunter2 --port 8080 --workers 6

  # on each teammate's laptop
  fetchforge submit https://example.com/dataset.tar.gz \
      --server http://buildbox:8080 --token hunter2 --as dana
  fetchforge status --server http://buildbox:8080 --token hunter2

...

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