KGet v1.6.3
A fast, modern download manager written in Rust. Supports HTTP/HTTPS, FTP/SFTP, and magnet links with a built-in torrent client.
Features
- Multi-protocol: HTTP, HTTPS, FTP, SFTP, Magnet links, and Metalink (
.meta4/.metalink) - Native Torrent Client: Downloads torrents directly — no external apps needed
- Turbo Mode: Parallel connections for faster downloads
- Metalink: Multi-mirror downloads with automatic mirror fallback and SHA-256 verification (RFC 5854)
- Download History: Every download is recorded; browse with
--history, clear with--history-clear - Interactive REPL: Full
kget --interactivemode with history, all protocols, and live config editing - GUI & CLI: Use whichever you prefer
- Cross-platform: macOS, Linux, Windows
- ISO Verification: Optional SHA256 checksum for disk images
- JSONL Events: Experimental machine-readable progress for scripts and agents
- Native Notifications: Completion/error notifications in the Rust GUI on Linux/Windows
Screenshots
| GUI | CLI |
|---|---|
Installation
From Source
# Install Rust from https://rustup.rs if needed
# Linux dependencies (Debian/Ubuntu)
# Clone and build
# Run
From crates.io
Pre-built Binaries for macOS/Linux/Windows GUI
Download from Releases.
Usage
GUI Mode
CLI Mode
# Basic download
# Turbo mode (parallel connections, resumable)
# Save to specific location
# Torrent download (auto-detected)
# FTP – anonymous (no credentials needed)
# FTP – authenticated
# SFTP – password in URL
# SFTP – key-based (SSH agent or ~/.ssh/id_*)
Interactive Mode
Launches a REPL with an ASCII art banner, command history, and full protocol support:
kget> download -a -o ~/Downloads/ubuntu.iso https://releases.ubuntu.com/...
kget> download --sftp sftp://user@server/backups/db.sql.gz
kget> download magnet:?xt=urn:btih:...
kget> config set connections 8
kget> config set speed-limit 1048576
kget> help
Metalink downloads
# From a local manifest
# From a remote manifest (auto-detected by extension)
# Tries each mirror in priority order; verifies SHA-256 automatically
Download History
Interactive mode:
kget> history
kget> history clear completed
Options
| Flag | Description |
|---|---|
-a, --advanced |
Turbo mode with parallel connections (resumable) |
-O <path> |
Output file or directory |
-q, --quiet |
Minimal output |
-p <proxy> |
Use HTTP/SOCKS5 proxy |
-l <bytes> |
Speed limit in bytes/sec |
--sha256 <hash> |
Verify the completed file against an expected SHA256 hash |
--metalink |
Download from a Metalink manifest (.meta4 / .metalink) |
--history |
Show download history (last 50 entries) |
--history-clear [completed] |
Clear history (all, or only completed/cancelled) |
--jsonl |
Emit experimental JSON Lines events for scripts and agents |
--ftp |
Use FTP protocol |
--sftp |
Use SFTP protocol (password or key-based auth) |
--gui |
Launch graphical interface |
-i, --interactive |
Interactive REPL mode |
Library Usage
KGet can be used as a Rust library. See LIB.md for details.
use ;
let options = default;
download?;
Building
# CLI only
# With GUI
# Cross-compile for Linux/Windows (from macOS)
Testing
Links
You can see posts about the project in others communities:
License
MIT License - see LICENSE