The Linux download manager. Fast, segmented downloads with a clean GUI, browser integration, and deep desktop integration.
- Segmented downloading — splits files into up to 32 concurrent connections (default 16)
- Pause and resume — segment progress persists to SQLite, survives process restarts
- Auto-retry — per-segment exponential backoff for transient failures
- Download queue — configurable max concurrent downloads with FIFO scheduling
- Speed limiter — global rate limiting across all active segments
- Queue reordering — drag and drop to reprioritize pending downloads
- Dead link refresh — automatic URL renewal for expired CDN links
- Checksum verification — SHA-256, SHA-512, SHA-1, MD5; verified on completion
- Download details — per-segment progress, URL refresh, checksum editing, full metadata view
- Dark theme — system, light, and dark modes
- Desktop notifications — completion and failure alerts via
notify-send - Keyboard shortcuts — Ctrl+N (add), Ctrl+V (paste URL), Delete (remove), Space (pause/resume), Ctrl+A (select all), Ctrl+Q (quit)
- Batch URL import — paste or load a text file of URLs
- Browser extensions — Chrome and Firefox extensions intercept downloads, with configurable filters and domain blocklist
- REST API + WebSocket — full HTTP API for scripting and browser extension integration
One-liner:
curl -fsSL https://raw.githubusercontent.com/fhsinchy/bolt/master/install.sh | shThis downloads the latest release, installs the binary to ~/.local/bin, sets up a systemd user service, desktop entry, and icon. Bolt starts automatically on login.
To uninstall:
curl -fsSL https://raw.githubusercontent.com/fhsinchy/bolt/master/install.sh | sh -s -- --uninstallMake sure ~/.local/bin is in your PATH.
Download the latest tarball from GitHub Releases:
tar xzf bolt-linux-amd64.tar.gz
cd bolt-linux-amd64
mkdir -p ~/.local/bin ~/.config/systemd/user ~/.local/share/applications ~/.local/share/icons/hicolor/256x256/apps
cp bolt ~/.local/bin/
cp bolt.service ~/.config/systemd/user/
sed "s|Exec=bolt|Exec=$HOME/.local/bin/bolt|" bolt.desktop > ~/.local/share/applications/bolt.desktop
cp appicon.png ~/.local/share/icons/hicolor/256x256/apps/bolt.png
gtk-update-icon-cache -f -t ~/.local/share/icons/hicolor 2>/dev/null || true
update-desktop-database ~/.local/share/applications 2>/dev/null || true
systemctl --user daemon-reload
systemctl --user enable --now boltBolt ships browser extensions for Chrome and Firefox that intercept downloads and forward them to Bolt.
Submissions to the Chrome Web Store and Firefox Add-ons (AMO) are in progress. In the meantime, you can install the extensions manually.
Chrome:
- Download
bolt-capture-chrome.zipfrom the latest release - Unzip the file
- Open
chrome://extensionsand enable Developer mode - Click Load unpacked and select the unzipped folder
Firefox:
Firefox requires add-ons to be signed by Mozilla. Until the AMO submission is approved, you can load it temporarily:
- Download
bolt-capture-firefox.zipfrom the latest release and unzip it - Open
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on...
- Select any file inside the unzipped folder
Note: Temporary add-ons are removed when Firefox restarts. A signed version will be available on AMO soon.
The extension popup lets you configure the server URL and auth token. On first install, a welcome page walks you through setup.
System dependencies:
Fedora:
sudo dnf install golang gtk3-devel webkit2gtk4.1-devel gcc-c++Ubuntu / Debian:
sudo apt install golang libgtk-3-dev libwebkit2gtk-4.1-dev build-essentialArch:
sudo pacman -S go gtk3 webkit2gtk-4.1Node.js (see nodejs.org/en/download):
curl -fsSL https://fnm.vercel.app/install | bash
fnm use --install-if-missing 20pnpm (see pnpm.io/installation):
curl -fsSL https://get.pnpm.io/install.sh | sh -Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latestVerify your environment with wails doctor.
git clone https://github.com/fhsinchy/bolt.git
cd bolt
make buildmake dev # hot-reload development
make test # run all tests
make test-race # run tests with race detector
make build # production build
make install # build + install locally with systemd service
make uninstall # remove everythingSingle GUI binary — Wails window + HTTP server + download engine.
cmd/bolt/ Entry point (GUI launch)
internal/
engine/ Download engine (segmented downloading, retry, resume)
queue/ Queue manager (concurrency control)
server/ HTTP server (REST API + WebSocket)
app/ Wails IPC bindings
db/ SQLite data access layer
config/ Configuration management
event/ Event bus (pub/sub)
tray/ System tray
notify/ Desktop notifications
model/ Shared types
frontend/ Svelte 5 + TypeScript + Tailwind CSS
extensions/ Chrome + Firefox browser extensions
| Component | Technology |
|---|---|
| Backend | Go 1.23+ |
| GUI | Wails v2 |
| Frontend | Svelte 5, TypeScript 5, Vite 6, Tailwind CSS 4 |
| Database | SQLite via modernc.org/sqlite (pure Go, no CGO) |
| WebSocket | nhooyr.io/websocket |
| System tray | energye/systray |

