Skip to content

Repository files navigation

fhast

fhast banner

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 from Source

Build fhast with Cargo from the repository root:

cargo build

Create optimized executables with:

cargo build --release

On 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-host

If 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-dev

Running 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 build

After building the extension, load the extension/ folder at chrome://extensions/ with Developer mode enabled.

Quick Start - Windows

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:

  1. Double-click fhast-gui.exe.
  2. Click Add URL and paste a download link.
  3. Watch progress in the download table.
  4. Double-click a file row to see details.
  5. 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 --release

Then 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.

Quick Start - Terminal

# 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

Commands

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.

Chrome Extension

fhast includes a Chrome extension for capturing download links.

  1. Load the extension from extension/ at chrome://extensions/ (Developer mode → Load unpacked)
  2. Open Extension in fhast-gui.exe, paste the Chrome extension ID, and click Register Chrome Integration (Native Host)
  3. Right-click a link → "Send link to fhast", or use the toolbar popup

See docs/chrome-extension.md for details.

Documentation

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.

About

fhast is a Rust download manager with a Windows desktop app, a terminal UI, and a command-line interface.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages