fhast is a Rust download manager with a Windows desktop app, a terminal UI, and a command-line interface. On Windows, most users should open the GUI app and let it manage the background helper programs automatically.
Build fhast with Cargo from the repository root:
cargo buildCreate optimized executables with:
cargo build --releaseOn Linux or WSL, the full workspace build includes the desktop GUI crate. If you only need the daemon, CLI, TUI, and native host, build those packages directly to avoid Linux GUI system dependencies:
cargo build --release -p fhast-cli -p fhast-daemon -p fhast-tui -p fhast-native-hostIf you want to build the full workspace including the Linux GUI, install the required desktop development packages first. On Ubuntu or Debian WSL, start with:
sudo apt update
sudo apt install pkg-config libgtk-3-dev libappindicator3-dev libxdo-devRunning the Linux GUI also requires a desktop display session, such as WSLg on Windows 11 or a normal Linux desktop.
Build the Chrome extension from the extension/ folder:
cd extension
npm install
npm run buildAfter building the extension, load the extension/ folder at chrome://extensions/ with Developer mode enabled.
Build or unpack a Windows release, then open the folder that contains these files:
fhast-gui.exe
fhast-daemon.exe
fhast-native-host.exe
Double-click fhast-gui.exe to start fhast.
Simple Windows flow:
- Double-click
fhast-gui.exe. - Click Add URL and paste a download link.
- Watch progress in the download table.
- Double-click a file row to see details.
- Press X and choose Minimize to Tray to keep downloads running, or Close fhast to exit.
Keep fhast-daemon.exe and fhast-native-host.exe in the same folder as fhast-gui.exe. They are helper programs used by the GUI; users do not need to open them manually.
If you built from source, create the release executables with:
cargo build --releaseThen open target\release\ in File Explorer and double-click fhast-gui.exe.
For browser integration, load the Chrome extension, then open Extension in the GUI and click Register Chrome Integration (Native Host). This registers the fhast-native-host.exe helper that Chrome uses to talk to fhast. See windows-gui.md for the full Windows guide.
# Build
cargo build --release
# Start the daemon
cargo run -p fhast-cli -- daemon start
# Add a download
cargo run -p fhast-cli -- add "https://example.com/file.zip"
# Open the TUI dashboard
cargo run -p fhast-cli -- tui
# Stop the daemon
cargo run -p fhast-cli -- daemon stop| Command | Description |
|---|---|
fhast daemon start |
Start the background daemon |
fhast daemon stop |
Stop the daemon gracefully |
fhast add <url> |
Queue a download |
fhast add <url> --out <path> |
Download to a specific path |
fhast add <url> --connections <n> |
Override segment count |
fhast list |
List all downloads |
fhast list --json |
List as JSON |
fhast info <id> |
Show download details |
fhast info <id> --json |
Show details as JSON |
fhast pause <id> |
Pause an active download |
fhast resume <id> |
Resume a paused download |
fhast remove <id> |
Remove a download and its files |
fhast retry <id> |
Retry a failed download |
fhast events |
Show recent daemon events |
fhast tui |
Open the terminal dashboard |
fhast config get [key] |
Show all or specific config |
fhast config set <key> <value> |
Set a config value |
fhast doctor |
Run system diagnostics |
The Windows GUI is available as fhast-gui.exe. It starts its helper service when needed, shows downloads in a responsive resizable table, opens details on double-click, provides download controls and config editing, and lets users choose between minimizing to the tray or closing fhast when pressing X.
fhast includes a Chrome extension for capturing download links.
- Load the extension from
extension/atchrome://extensions/(Developer mode → Load unpacked) - Open Extension in
fhast-gui.exe, paste the Chrome extension ID, and click Register Chrome Integration (Native Host) - Right-click a link → "Send link to fhast", or use the toolbar popup
See docs/chrome-extension.md for details.
| Doc | Covers |
|---|---|
| architecture.md | System overview, crate map, data flow |
| development.md | Setup, build, run, extension development |
| windows-gui.md | Windows desktop app usage, tray, daemon, extension setup |
| windows-gui-architecture.md | Windows GUI process model, IPC, native-host integration |
| ipc-protocol.md | IPC message schemas and transport |
| download-engine.md | Downloader modes, segments, resume, retry |
| tui.md | TUI views, keybindings, architecture |
| chrome-extension.md | Extension & native host development |
| database.md | SQLite schema, migrations, statuses |
| configuration.md | Environment variables, paths, defaults |
| testing.md | Test server modes, coverage, writing tests |
| troubleshooting.md | Common issues and fixes |
| contributing.md | PR guidelines, code style, commit conventions |
On Windows, the user-facing app is fhast-gui.exe. fhast-daemon.exe and fhast-native-host.exe are helper programs that should stay beside it.
