Amirhossein Hosseinpouramirhp
CV
Active macOS app · Browser extensions

BDM, BlackSwan Download Manager

One file, many connections, one verified result.

A native Mac download manager. It splits a file into segments, downloads the segments in parallel, writes each piece straight to its place in the file, and checks the result before it calls the download done. Extensions for Chrome, Firefox and Safari hand your browser's downloads to it.

Download for Mac Source on GitHub

The app's source is public but its licence reserves all rights; the browser extensions are MIT, according to their READMEs. Needs macOS 26 Tahoe. Figures from the GitHub API, 30 September 2026.

On GitHub2026 to today

What it does

No ads and no Electron: a Swift app, with the download engine in a process of its own.

Parallel segments

2 to 32 segments per file, each fetched by 2 to 4 threads, rebalanced every 500 milliseconds.

Real pause and resume

Progress is saved per thread, so a paused or interrupted download continues from where each piece stopped.

Routing rules

Send files to folders by extension or domain, first match wins, with per-download overrides.

Finish tasks

A chain of actions when a download ends: a sound, open the file, run a script, or shut the Mac down.

The engine

No temporary part files to stitch together at the end. Every byte is written once, to where it belongs.

A HEAD request checks the file first. The planner splits the file into segments, and each thread writes its bytes with pwrite() at their offset in a sparse file of the final size. When the last segment lands, the file is verified, with SHA-256, SHA-512 or MD5, then moved into place with an atomic rename().

The engine runs in its own XPC service, so downloads carry on when the window is closed. The app is Swift 6 with strict concurrency: actors own the state, task groups run the threads.

URL
 → HEAD              check the source
 → segment planner   N segments × M threads
 → pwrite()          each byte to its offset, sparse file
 → verify            SHA-256 / SHA-512 / MD5
 → rename()          atomic, only when complete
The pipeline from the repository's README.

Browser extensions

Three small extensions that notice a download in the browser and hand it to the app.

Chrome and Firefox talk to the app through native messaging: the extension cancels the browser's own download and sends the URL, file name and referrer to a small helper that ships with BDM. Safari uses a host app instead. A context menu item, Download with BDM, sends any link by hand.

The Chrome extension's store listing is marked as coming soon; for now all three install from their repositories, and the Chrome and Firefox ones include the native messaging manifest and an install script.

Getting started

macOS 26 Tahoe or later, Apple silicon or Intel.

  1. Install the app

    Download the DMG from the latest release and drag BlackSwan Download Manager into Applications.

  2. Add a download

    Add URLs (⌘N), or paste a link. ⇧⌘M pops out a small floating progress widget.

  3. Connect your browser

    Load the extension for your browser from its repository and run the native messaging install script it includes.

  4. Or build it

    With Xcode 26: xcodebuild -project BDM.xcodeproj -scheme BDM -configuration Release build.

Releases

One published release so far. Work since has gone into the repository and the extensions, pushed in June 2026.

VersionReleasedWhat changedDownloads
1.0.026 Mar 2026First release: the segment engine, checksum verification, the XPC service, routing, JSON localisation.36

The README already describes a 1.2.0 DMG; until it is published as a release, 1.0.0 is the version you can download.

branch main 6 active projects ↑ 113 releases open-source/bdm.md Sari --:-- UTC+3:30 its@amirhp.com