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 single Transmission daemon (with multi-host failover if your daemon is reachable by more than one address, e.g. LAN IP + Tailscale).
- 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.

