SwiftUI. Libtorrent. Hostile-input hardened.

Tora

A native macOS BitTorrent client designed around inspection first, validated paths, and a narrow service boundary around libtorrent.

No Electron
Built as a native macOS app with Swift and SwiftUI.
No blind writes
Torrent paths are validated before payloads start.
No auto-open
Completed downloads stay under explicit user control.
Tora torrent dashboard showing transfers, progress, and torrent details

Security model

Built for untrusted torrent input.

01

Inspect before download

Magnet links and torrent files are inspected so users can review contents before payload data is allowed to start.

02

Constrained filesystem writes

Download roots and torrent-provided paths are checked to prevent traversal, surprise locations, and unsafe deletion targets.

03

Narrow native bridge

Raw libtorrent types stay inside the Objective-C++ bridge, keeping SwiftUI and core app logic away from unsafe handles.

Native workflow

A torrent interface that behaves like a Mac app.

State-aware actions

Start, pause, resume, and seeding actions follow the torrent state instead of exposing risky generic controls.

Right-click where users expect it

Context menus are treated as a primary macOS control surface across the torrent list and details.

Magnet inspection without extra clicks

Valid magnet input can be inspected automatically while avoiding duplicate paste and manual-submit paths.

Project shape

Small layers with clear ownership.

ToraApp
ToraUI
ToraCore
ToraLibtorrentBridge
libtorrent-rasterbar