Repository navigation
Rookparcel 1.2.0 (released as PaTorrent)
PaTorrent 1.2.0 brings profiles and portable mode on every platform: run several independent PaTorrents side by side, or carry one in a folder that moves between drives and systems. A first-start Setup Guide, help texts for every setting, a filter in the Files tab, binding torrent traffic to a VPN, and an optional search helper that fetches Jackett for you come with it. A bug hunt fixed 37 findings, among them a Web UI login bypass and a peer message that crashed the engine, so every user of 1.1.40 should update. Everything else is as in 1.1.40. It has been used mostly by its author so far, so reports of what breaks are very welcome.
PaTorrent (PatinaTorrent) is a lean BitTorrent client in the spirit of µTorrent 2.2.1: small single-file binaries, a native look, low RAM and CPU use, and an interface that stays responsive with tens of thousands of torrents. The engine is our own Rust port of libtorrent-rasterbar 2.0.11; nothing is linked.
New since 1.1.40
- Profiles. Several independent PaTorrents for one user, each with its own settings, torrents, ports and window, running at the same time:
- File > Profiles in both GUIs lists Default and every named profile and starts one in its own window. New Profile... makes one; Create Shortcut... puts it on the Windows desktop or in the Linux menu; Open Profile Folder shows its files.
--profile workworks inpatorrent,patorrent-gtkandpatorrent-nox. Names are up to 32 letters, digits and dashes. The title bar, the tray tooltip and About show[work].- A named profile lives in a
profiles/<name>folder beside the default one (for example%APPDATA%\PaTorrent\profiles\work). The default profile's folders have not moved. - A new profile gets its own random listen port, and the Web UI page proposes the first free port from 8080 up. If a port is taken, the status bar says so; a click opens Preferences > Connection.
- Only one profile opens
.torrentfiles and magnet links at a time; General names the one that does. Each profile can start with the system on its own. patorrent-noxruns one service per profile:service install --profile workon Windows (service status --alllists them), thepatorrent-nox@.servicetemplate on systemd, andpatorrent_nox_profilesin FreeBSD's rc.d.
- Portable mode everywhere. An empty
patorrent.inikeeps settings, torrents and, by default, downloads (Downloads) in the program's own folder: besidepatorrent.exeon Windows, besidepatorrent-gtkor the.AppImageon Linux and BSD, and besidePaTorrent.appon macOS (not in the Flatpak). Paths inside that folder are stored relative to it, so it can move to another drive letter, a USB stick or another system without a recheck. - One window per folder. Each settings folder is locked by the copy that uses it, and a second start hands its torrent to that copy only. Before, an installed and a portable copy could hand torrents to each other.
- Setup Guide (Windows and GTK). At a profile's first start, four pages ask where downloads go, whether your router is modern or older (older gets fewer connections), whether to use smart disk I/O, and whether PaTorrent should start with the system and open torrent files. Only Finish changes anything; Skip or Esc leaves the defaults. Options > Setup Guide (Ctrl+G) opens it again.
- Help for every setting. Hover a setting for its tooltip, read the help pane under each Preferences page, or press F1. In the Windows GUI, menu and toolbar items explain themselves in the status bar. The texts are in English for now.
- Files tab filter (Windows, GTK, Web UI). A "Filter files" box at the top right shows the files whose path contains every word you type, with "{shown} of {total} files". Ctrl+F jumps to it, Esc or × clears it, and Ctrl+A selects the files shown.
- Use only this network (Preferences > Connection;
--networkinpatorrent-nox). Binds all torrent traffic to any VPN adapter, an adapter you name, or an address range. While that network is missing, torrents wait ("Waiting for the network") and resume by themselves once it is back. The General tab shows "Your address as trackers see it". Off by default; the Web UI and remote control are not bound. - Search helper (optional). In Search Sources, Get the Search Helper (Jackett)... downloads Jackett's own release from GitHub at your click, checks its SHA-256 and adds the source "Search helper (all)". It runs only while you search, on 127.0.0.1, and stops after 10 idle minutes and when PaTorrent exits. Pick Sites... chooses its sites (none are ticked at first). Also in
patorrent-noxand the Web UI, where getting and updating it asks for the Web UI password. Not in the Flatpak or on FreeBSD. A step-by-step guide is on the wiki. - Smaller additions:
- GTK: every other row is shaded, as on Windows. Ctrl+S, Ctrl+T and Ctrl+Shift+P start, stop and pause, and Enter opens Properties.
- Windows: the status bar says "Restoring torrents..." until the torrent list has loaded, and the tray menu offers Show while the window is minimized.
- Torrent Properties greys DHT and PEX when every selected torrent is private.
- Scrape replies and failures appear in the Logger.
- Web seed passwords show as
user:***@in the peer list and the Logger. - A 28-page user guide is on the GitHub wiki.
- Fixes:
- A stopped torrent with only some files selected shows the progress of those files, not of the whole torrent.
- The closing window no longer waits for trackers that do not answer, and it fits its content.
- A priority change, move or rename on one torrent no longer stalls every transfer behind another torrent's check.
- Peers that connect while a magnet link's files are checked are served once the check ends. Allowed-fast requests survive a choke, and fast peers are no longer snubbed by mistake.
- Alerts are no longer lost while Torrent Properties is open. A busy first copy no longer swallows a torrent opened by a second start.
- UPnP no longer spins a CPU core after a port change, and removes its mapping at exit.
- Downloads with a Latin-1 header or a 1xx reply work. A watched folder no longer mixes up files of the same name.
- Windows: renames and moves past 260 characters work; a saved window on an unplugged monitor comes back on screen.
- On Linux,
/Dataand/dataare different folders. - The Web UI's qBittorrent-compatible API reports private torrents, sorts queued torrents as the engine queues them, keeps RSS read marks, and leaves an unknown size empty.
- Security. A bug hunt over the whole code found 38 problems: 5 high, 12 medium and 21 low. All are fixed except one low finding that turned out not to be a problem. Details are in BUGHUNT-2026-11-05.md. The ones to know about:
- Web UI login bypass. While a client from loopback, with the API key or from a whitelisted subnet was active, a request from anywhere could log in with a forged cookie. This affects
patorrent-noxand the Windows GUI's Web UI. - Engine crash from a peer. Any peer could stop the engine with a crafted extension message (
reqqof 1 to 3) or a web seed with a non-ASCII host name. - Path handling. A crafted file name could put a file at the torrent's root folder, and the Web UI's remote adds and moves ignored
--webui-save-root. - A search result whose torrent has another hash than the result named is refused. The Windows self-update downloads into
%LOCALAPPDATA%\PaTorrent\updateinstead of a shared temporary folder. A slow server can no longer keep an update download open forever.
- Web UI login bypass. While a client from loopback, with the API key or from a whitelisted subnet was active, a request from anywhere could log in with a forged cookie. This affects
Settings and torrents from 1.1.x carry over unchanged, and the default profile's folders stay where they were. A portable folder written by 1.2.0 needs 1.2.0 or later, because its paths are now relative. The peer ID is now -PA1013-, because peers see the fixes to requests, upload mode and invalid pieces. The remote protocol is now version 15, so a GUI and the patorrent-nox it drives must both be 1.2.0.
Downloads
SHA256SUMS has every file's checksum.
| Platform | File | What is inside |
|---|---|---|
| Windows 10 / 11, x64, installer | patorrent-1.2.0-windows-x64-setup.exe |
patorrent.exe (the GUI) and patorrent-nox.exe (the headless daemon), installed with a Start menu entry and an uninstaller |
| Windows 10 / 11, x64, portable | patorrent-1.2.0-windows-x64.zip |
the same two programs; statically linked, nothing to install |
| Linux desktop, x86_64 or aarch64 | PaTorrent-1.2.0-<arch>.AppImage |
the GTK 4 GUI with its libraries bundled (needs glibc 2.39 or newer: Ubuntu 24.04, Fedora 40, Debian 13 or later) |
| Linux desktop, Flatpak | PaTorrent-1.2.0-<arch>.flatpak |
the GTK 4 GUI on the GNOME 51 runtime (installed from Flathub) |
| Linux, plain binaries | patorrent-1.2.0-linux-<arch>.tar.gz |
patorrent-gtk, patorrent-nox, the desktop entry and the systemd units; they use the system's GTK 4 (4.12 or newer) and OpenSSL 3, as on Ubuntu 24.04 |
| Linux server, headless | patorrent-nox-1.2.0-<arch>.AppImage |
patorrent-nox with OpenSSL bundled |
| macOS, Apple silicon | PaTorrent-1.2.0-arm64.dmg |
PaTorrent.app: the GTK 4 GUI with its libraries bundled (macOS 15 or newer) |
| macOS, headless | patorrent-nox-1.2.0-macos-<arch>.tar.gz |
patorrent-nox for Apple silicon (arm64, macOS 11+) and Intel (x86_64, macOS 10.14+) |
First run
-
Windows installer. Run the setup. It is not code-signed, so SmartScreen shows "Windows protected your PC": click More info > Run anyway. "Install for anyone using this computer" asks for administrator rights and shows "Unknown publisher". Over an installed 1.0.1 or 1.1.x it upgrades in place. Settings and torrents are in
%APPDATA%\PaTorrent. -
Updating from 1.1.40. Its update box offers "Download and install". An installed 1.1.17 cannot install updates itself, so run the new setup by hand once.
-
Windows zip. Unzip anywhere and start
patorrent.exe; SmartScreen warns as above. Settings and torrents go to%APPDATA%\PaTorrent. An emptypatorrent.ininext to the exe keeps them beside it instead (portable mode). -
Setup Guide. A new profile or portable folder starts with the guide. Finish saves its choices; Skip keeps the defaults. An existing 1.1.x setup does not show it.
-
Profiles. File > Profiles > New Profile..., or start any of the programs with
--profile NAME. -
Web UI from the Windows GUI. In Preferences > Web UI, tick Enable Web UI, set a password and click OK. The page then shows the URL (
http://127.0.0.1:8080/by default). For other computers, tick "Allow connections from other computers" and let the port through the Windows firewall. Use HTTPS when the connection leaves your home network. -
Sonarr, Radarr, Prowlarr. Add PaTorrent as a qBittorrent download client, with the Web UI's address, port, user name and password. If the app reaches PaTorrent by a host name rather than an IP address, add that name under Preferences > Web UI > Server domains (
webui.domain_list). -
Torrent search. Open Manage Sources from the search box's menu (the Web UI: Find > Manage Sources). Either click Get the Search Helper (Jackett)..., or add your own Prowlarr or Jackett: copy an indexer's Torznab feed URL and the API key, add the source and press Test.
-
Linux AppImage. Run
chmod +x PaTorrent-1.2.0-x86_64.AppImage, then start it. Without FUSE 2 on the system, start it with--appimage-extract-and-run. Settings are in~/.config/patorrent/gtk, torrents in~/.local/share/patorrent/gtk. An emptypatorrent.inibeside the.AppImagemakes it portable. -
Linux Flatpak. The bundle holds the application; the runtime comes from Flathub:
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo flatpak install --user PaTorrent-1.2.0-x86_64.flatpak flatpak run io.github.balls0fsteel.PaTorrent
-
macOS. Drag
PaTorrent.appto Applications. It is ad-hoc signed and not notarised, so Gatekeeper refuses it the first time ("cannot be opened because the developer cannot be verified"). Right-click (or Control-click) the app > Open, then click Open. Or remove the quarantine flag:xattr -dr com.apple.quarantine /Applications/PaTorrent.app. For portable mode, keep the app in a folder of its own with an emptypatorrent.inibeside it. The GUI is Apple silicon only; Intel Macs getpatorrent-nox. -
Headless.
patorrent-nox run --webui 8080 --webui-pass PASSstarts the daemon with its Web UI and a qBittorrent-compatible Web API on port 8080; add--webui-httpsfor a self-signed certificate.patorrent-nox add file.torrent --save DIRadds a torrent. docs/DAEMON.md describes running it as a service: systemd units, FreeBSD rc.d,--daemonand a Windows service, one per profile if you like. -
Remote control. Either GUI can drive a
patorrent-noxelsewhere: use File > Connect to Remote..., or start it with--remote. Both sides must be 1.2.0.
Known limitations
- Most features have been exercised by the author only; some dialogs and settings have had little use. Keep a copy of torrents you care about elsewhere.
- Do not use it on private trackers yet. The client ID
PAis not whitelisted anywhere. - Nothing is code-signed, so Windows SmartScreen and macOS Gatekeeper warn (see above).
- New texts, like the other strings added since 1.0, are machine translations in every language but English. The help texts are in English only, and the Add Torrent, Properties and RSS dialogs have none yet.
- Use only this network has been tested with a stand-in adapter on Windows and Linux, not yet with a real VPN, and not on macOS or FreeBSD. Name lookups and Keep ping low's probes are not bound to the chosen network.
- The Setup Guide has been driven by tests in both GUIs but not yet clicked through at a real first start.
- The search helper ran against real Jackett on Windows, Linux and an Intel Mac. It has not been tried from a Windows account without administrator rights, or installed from the Web UI against the real download. With the shipped systemd units, Jackett may need an override (see SEARCH_HELPER.md). If PaTorrent crashes on Linux or macOS, Jackett may keep running until you stop it.
- Profiles and portable mode were checked on Windows, Xubuntu (GNOME and KDE on Wayland, the Flatpak, the AppImages), FreeBSD and a real Intel Mac. In portable mode, the Web UI's category folders are still stored as full paths. In the Flatpak only the default profile can start with the system, and on macOS only the default profile can open torrent files.
- The GTK changes listed above under Smaller additions passed their tests on Linux but have had little use in a desktop session.
- Keep ping low has not yet been tested on a real line during a game, nor on a Mac. The busy-disk throttle's thresholds are first guesses, which is why it is off by default.
- macOS: the GUI is the GTK one; a native macOS GUI is planned but not started.
Reporting problems
Open an issue with your platform, the file you used and what happened. For a crash or a stuck torrent, include the Logger tab or patorrent-nox run --verbose output. For security problems, see SECURITY.md.
License
PaTorrent is free for noncommercial use under the PolyForm Noncommercial License 1.0.0. Code ported from libtorrent remains under its BSD-3-Clause license; every download carries LICENSE.md and THIRD-PARTY-NOTICES.md. PaTorrent is an independent project, not affiliated with libtorrent, qBittorrent, µTorrent or BitTorrent, Inc.