A native macOS app for controlling a Transmission BitTorrent daemon over its JSON-RPC API. Built in Swift + AppKit, signed with a Developer ID certificate, and notarized by Apple — download it and just open it, no Gatekeeper workarounds needed.
This is a fork of transgui, the long-running cross-platform Transmission Remote GUI (originally Free Pascal / Lazarus, also packaged for Windows and Linux). That project hasn't seen much activity lately and is understandably focused on being cross-platform first. This fork drops everything except macOS and rewrites the app from scratch as a small, fast, fully native Mac app instead — no Lazarus runtime, no cross-platform compromises. The original Pascal codebase is preserved on the legacy-pascal branch, both for history and because rpc.pas remains a handy reference for the Transmission RPC protocol.
- Connects to a Transmission daemon with multi-host failover if your daemon is reachable by more than one address, e.g. LAN IP + Tailscale. Also has support for multiple servers in the config with quick switching.
- Live, sortable torrent list with a state-colored progress bar and customizable columns.
- Start / stop / force-start / rename / move / verify / queue-reorder / bandwidth-priority / remove.
- A Files tab for per-file selection (wanted/unwanted) and priority.
- Add torrents via the toolbar,
File > Open/Open Location, drag-and-drop, or Finder's Open With. - Sidebar filtering by status, tracker, or download folder.
- Multiple saved servers, switchable from a menu.
- Remote → local path mappings, so you can Reveal in Finder / Open files straight from the torrent list when the download volume is mounted locally.
- A native Settings window for everything above — no config file editing.
Grab the latest signed, notarized build from the Releases page. Unzip it, drag it to /Applications, and open it like any other Mac app.
The Xcode project is generated by XcodeGen from project.yml (committed). The generated .xcodeproj and build/ are gitignored.
make dev # regenerate project, debug build, and open the app
make test # run unit tests
make clean # remove DerivedData
make # list all available targetsThe release pipeline (make release) handles signing, notarization, changelog, tagging, and publishing a GitHub release in one shot.
See CLAUDE.md for architecture notes, source layout, and testing details.
Pull requests are welcome! See CONTRIBUTING.md for the details — short version: AI-assisted code is fine as long as a human has actually reviewed it, and feature requests are welcome but prioritized at the maintainer's discretion since this is a side project maintained by one person.
By participating in this project you agree to follow the Code of Conduct.
GPLv2, inherited from the upstream project. See LICENSE.

