A native WinUI 3 desktop client for qBittorrent on Windows.
WinBitTorrent wraps the real qbittorrent-nox engine in a modern, fluent Windows 11 interface — Mica backdrop, light/dark themes, tabbed details, drag-and-drop, tray integration and full localization — while keeping the proven qBittorrent/libtorrent core running under the hood.
- What is WinBitTorrent?
- Features
- How it works (under the hood)
- Tech stack
- Download & install
- Building from source
- Data & configuration locations
- Security notes
- Localization
- Contributing
- License
- Third-party notices & source offer
- Acknowledgements
qBittorrent is a fantastic, cross-platform BitTorrent client, but its desktop UI is built on Qt Widgets and doesn't feel at home on modern Windows. WinBitTorrent is a from-scratch Windows front-end that speaks to qBittorrent's Web API and renders everything with WinUI 3 / the Windows App SDK.
Out of the box it ships and manages its own bundled qbittorrent-nox engine as a private, loopback-only background process — so it works as a standalone torrent client with no manual server setup. It can also connect to any remote qBittorrent instance (a NAS, a seedbox, a home server) using username/password or an API key.
You get the reliability of the qBittorrent + libtorrent core with a UI that matches Windows 11.
- Transfer list with sortable, reorderable, show/hide columns (queue #, name, size, progress, status, seeds/peers, speeds, ETA, ratio, category, tags, added/completed dates, save path, info hashes, and more).
- Add torrents from
.torrentfiles, magnet links or URLs, with a rich pre-add dialog: save path & separate incomplete path, category/tags, start paused, skip-hash-check, sequential download, first-and-last-piece priority, download/upload limits, content layout and stop condition. - Per-file selection & priority in an interactive file tree (Do not download / Normal / High / Maximum), with tri-state folder checkboxes.
- Detail tabs for the selected torrent: General, Trackers, Peers, HTTP Sources, Files and a live Speed graph.
- Full context-menu actions: start/stop/force-start, force recheck, reannounce, queue up/down/top/bottom, set category, add/remove tags, rate limits, share-ratio limits, rename, set location, add trackers & web seeds, export
.torrent, super-seeding, open destination folder (with the file selected in Explorer), preview, and delete (optionally with data).
- RSS reader with auto-download rules.
- Search engine powered by qBittorrent's bundled Python (
nova3) search plugins. - Tracker search with a built-in RuTracker provider, including optional proxy support and secure credential storage.
- Create torrent wizard, cookies manager, and statistics view.
- Server profiles — the managed local engine plus any number of remote qBittorrent servers.
- Options across eight categories (Behavior, Downloads, Connection, Speed, BitTorrent, WebUI, RSS, Advanced) that read/write real qBittorrent preferences and verify they were applied.
- Windows-native niceties: Mica backdrop, custom title bar, light/dark/system theme, system tray icon with quick actions, drag-and-drop of
.torrentfiles,.torrentfile association andmagnet:protocol handling, single-instance activation, and persistent window/tab/column layout. - Localization: English (
en-US) and Russian (ru-RU).
WinBitTorrent does not re-implement the BitTorrent protocol. Instead it drives the genuine qBittorrent engine over its documented Web API:
┌──────────────────────────────────────────────┐
│ WinBitTorrent (WinUI 3 desktop app, .NET 8) │
│ Views / ViewModels (MVVM) │
│ │ HTTP + API key (localhost) │
│ ▼ │
│ QbittorrentApi client ── Web API 2.15.1 ──┐ │
└──────────────────────────────────────────────┘
│ │
▼ (managed local profile) ▼ (remote profile)
┌───────────────────────────┐ ┌───────────────────────────┐
│ Bundled qbittorrent-nox │ │ Any remote qBittorrent │
│ 5.2.3 + libtorrent 2.0.x │ │ server (NAS / seedbox) │
│ child process, 127.0.0.1 │ └───────────────────────────┘
└───────────────────────────┘
Managed local backend. On first launch of the local profile, the app spawns the bundled qbittorrent-nox.exe with a private profile directory, binds its Web UI to 127.0.0.1 on a random free port, and boots it headless. It reads the one-time temporary admin password from the engine's output, immediately rotates it into a persistent API key, and stores that key in the Windows Credential vault (PasswordVault) — the password never touches disk and is redacted from logs. The engine version and Web API version are verified against the expected contract (5.2.3 / 2.15.1) on startup.
Lifecycle safety. The child process is attached to a Windows Job object, so the engine can never be orphaned — if the app crashes or is killed, the backend goes down with it. On unexpected exit, WinBitTorrent attempts a bounded automatic restart.
Remote mode. Point a profile at any reachable qBittorrent Web UI and authenticate with username/password or an API key. The same UI drives local and remote servers; features that require local disk access (e.g. Open destination folder) are automatically limited to the managed local engine.
| Area | Technology |
|---|---|
| UI framework | WinUI 3 via the Windows App SDK 2.2 (self-contained) |
| Runtime | .NET 8 (net8.0-windows10.0.19041.0), x64 |
| App architecture | MVVM (CommunityToolkit.Mvvm) + Microsoft.Extensions.DependencyInjection |
| Data grid | WinUI.TableView |
| Torrent engine | qBittorrent 5.2.3 (qbittorrent-nox) / libtorrent 2.0.13 / Qt 6.11 / Boost 1.91 / OpenSSL 3.6 / CPython 3.13 |
| Tests | xUnit, FlaUI (UI automation) |
The solution is split into three projects for a clean separation of concerns:
WinBitTorrent— the WinUI 3 app: windows, views, view models, converters, services (settings, localization, tray).WinBitTorrent.Core— pure .NET domain layer: models, abstractions, and framework-free services (filters, formatters, preference verification, main-data accumulation). No UI or platform dependencies.WinBitTorrent.Infrastructure— the plumbing: the managed backend host, the Web API client, credential/profile storage, and tracker providers.
Requirements: Windows 10 version 2004 (build 19041) or newer, 64-bit.
- Go to the Releases page.
- Download the latest build for
win-x64. - Run the installer (or unzip the portable build) and launch WinBitTorrent.
The bundled qBittorrent engine is included in the release, so there is nothing else to install — the app is ready to download torrents immediately.
- Visual Studio 2022 (17.10+) with the .NET Desktop and Windows App SDK / WinUI workloads, or the .NET 8 SDK with the Windows App SDK.
- Windows 10/11 x64.
git clone https://github.com/Gorbachevvv/winBitTorrent.git
cd winBitTorrentThe Backend/ folder (containing qbittorrent-nox.exe and all of its native/Python dependencies) is not committed to the repository. You have two options:
- Download the CI artifact — the Windows backend GitHub Actions workflow builds and publishes
qbittorrent-nox-5.2.3-win-x64as an artifact. Extract it intoBackend/at the repo root. - Build it yourself — run the reproducible build script (takes a while; it compiles qBittorrent, libtorrent, Qt, Boost, OpenSSL and Python via a pinned vcpkg baseline):
Exact source URLs, versions, SHA-256 hashes and the vcpkg baseline live in
.\build\build-backend.ps1build/build-backend.ps1andbuild/vcpkg.json.
You can also point the app at an externally built engine with the
WINBITTORRENT_BACKEND_PATHenvironment variable.
dotnet build WinBitTorrent.csproj -c Debug -p:Platform=x64Or open WinBitTorrent.slnx in Visual Studio, set the platform to x64, and press F5.
dotnet testThe solution includes unit tests (WinBitTorrent.Core.Tests, WinBitTorrent.Infrastructure.Tests), integration tests against the managed backend (WinBitTorrent.IntegrationTests), and FlaUI-driven UI tests (WinBitTorrent.UiTests).
All runtime data lives under %LOCALAPPDATA%\WinBitTorrent (overridable with the WINBITTORRENT_DATA_ROOT environment variable):
| Path | Contents |
|---|---|
client-settings.json |
UI preferences: theme, language, layout, tab state, confirmations |
profiles.json |
Server profiles (local + remote) |
Backend\Profile\ |
The managed qBittorrent engine's private profile, config and data |
Backend\host.json |
Persisted loopback port for the managed engine |
Logs\ |
Application logs |
Secrets (the local API key and tracker credentials) are stored in the Windows Credential vault, not in these files.
- The managed engine's Web UI is bound to
127.0.0.1only, with host-header validation enabled and server domains restricted tolocalhost. - The port is chosen randomly per machine and is never exposed externally.
- Authentication uses a rotated API key kept in the Windows Credential vault; the qBittorrent one-time temporary password is consumed at startup, redacted from logs, and never persisted.
- The native engine runs inside a Windows Job object so it cannot outlive the app.
WinBitTorrent ships with English and Russian resources (Strings/en-US, Strings/ru-RU). The language can be changed in Tools → Options → Behavior and applies on the next launch. Contributions of additional languages are welcome — add a Strings/<culture>/Resources.resw alongside the existing ones.
Issues and pull requests are welcome!
- Found a bug or have a feature request? Open an issue.
- Keep changes focused, match the existing code style, and make sure
dotnet buildanddotnet testpass. - UI strings should go through the
.reswresource files (both cultures) rather than being hard-coded.
WinBitTorrent's own source code is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later) — see LICENSE.
This project bundles and distributes the qBittorrent engine, which is itself licensed under GPL-2.0-or-later (source) / GPL-3.0-or-later (binary, with the project's OpenSSL exception). Distributing the combined work under GPL-3.0-or-later keeps everything license-compatible.
WinBitTorrent stands on the shoulders of excellent open-source projects. Full notices are in Licenses/THIRD-PARTY-NOTICES.txt, and the complete corresponding-source offer for the bundled GPL backend is in build/SOURCE-OFFER.txt.
| Component | Version | License |
|---|---|---|
| qBittorrent | 5.2.3 | GPL-2.0-or-later / GPL-3.0-or-later (binary) |
| libtorrent | 2.0.13 | BSD 3-Clause |
| Qt | 6.11.1 | LGPL-3.0 / GPL |
| Boost | 1.91.0 | Boost Software License 1.0 |
| OpenSSL | 3.6.2 | Apache-2.0 |
| CPython | 3.13.14 | PSF License |
| WinUI.TableView | 1.4.1 | MIT |
| CommunityToolkit.Mvvm | 8.4.0 | MIT |
The bundled qbittorrent-nox.exe is built without source modifications from the official qBittorrent release-5.2.3 tag. The build recipe in build/ serves as the durable written offer for the corresponding source.
- The qBittorrent team and contributors for the engine that powers this client.
- Arvid Norberg and the libtorrent project.
- Microsoft's Windows App SDK / WinUI and .NET teams.
WinBitTorrent is an independent project and is not affiliated with or endorsed by the qBittorrent project.

