The Seed Champion — a high-performance BitTorrent client built for seedboxes that refuse to compromise. Seed massive libraries without drowning in RAM: the catalog lives in SQLite, and only active torrents hold wire state. When you need to rip data in, pile on an SSD leech cache and huge memory buffers for ultra-high-speed leech.
Use the terminal UI day to day, or run headless with serve. Same engine either way. Linux, FreeBSD, and macOS.
- Large libraries, efficient resources — thousands of torrents in the catalog without densifying idle ones
- Seedbox first — headless serve, rate limits, watch dirs, rtorrent / Transmission session import and export
- Fast I/O path — Compio-based networking; platform-aware upload and disk backends
- Terminal native — ratatui list, detail, peers, files, and activity log
It talks to trackers only (no DHT or PEX). Magnets, WebUI, and Windows are out of scope.
Rust toolchain required. Build from source:
cargo build --releaseBinary: ./target/release/seedchamp (or put it on your PATH).
seedchamp config init
seedchamp torrent add ./something.torrent --start
seedchamp| Default | |
|---|---|
| Config | ~/.config/seedchamp/config.toml |
| Data | ~/.local/share/seedchamp/ |
| Listen | 0.0.0.0:6881 |
Open the firewall / forwarded port for your listen address. Run seedchamp doctor if something looks wrong.
TUI — seedchamp (or seedchamp tui). Press ? for the full key map.
| Key | Action |
|---|---|
j / k |
Move |
Enter |
Detail |
Ctrl+s |
Start / stop |
p / f / l |
Peers / files / log |
/ |
Filter |
: |
Commands (:add, :remove, :limits, …) |
Ctrl+d |
Soft-delete (torrent must be stopped; files on disk stay) |
Ctrl+q |
Quit |
Headless — start the torrents you want, then:
seedchamp serveWatch folders — configure [watch] in the config file, or run seedchamp watch without the UI.
Moving from rtorrent
seedchamp import rtorrent /path/to/rtorrent/session
seedchamp import rtorrent /path/to/rtorrent/session --dry-runDetails: docs/rtorrent-session.md.
Moving from Transmission
seedchamp import transmission ~/.config/transmission-daemon
seedchamp import transmission /path/to/session --dry-runDetails: docs/transmission-session.md.
Export session (catalog → client session tree; requires --all):
seedchamp export rtorrent /path/to/session --all
seedchamp export transmission /path/to/session --allseedchamp torrent add ./film.torrent
seedchamp torrent add https://example.com/a.torrent --start
seedchamp torrent list
seedchamp torrent start <id-or-infohash-prefix>
seedchamp torrent stop <id-or-infohash-prefix>
seedchamp torrent del <id-or-infohash-prefix>
seedchamp torrent recheck <id-or-infohash-prefix>
seedchamp torrent --json list
seedchamp import rtorrent /path/to/session
seedchamp import transmission ~/.config/transmission-daemon
seedchamp export rtorrent /path/to/session --all
seedchamp export transmission /path/to/session --all
seedchamp config show
seedchamp doctor
seedchamp versionGlobal flags: --config PATH, --db PATH.
seedchamp config init # commented template
seedchamp config show # effective config after CLI/env/fileSettings resolve in order: CLI flags, SEEDCHAMP_* environment variables, the config file, then built-ins.
Encryption mode (network.encryption): prefer-plain by default; also off, prefer-rc4, require-rc4.
The init template covers paths, peer limits, upload/disk backends, watch dirs, rate limits, and optional leech cache (stage downloads on a fast volume before the permanent data root).
| docs/design.md | Architecture |
| docs/domains.md | Modules and I/O |
| docs/roadmap.md | Open work |
| docs/rtorrent-session.md | rtorrent import / export |
| docs/transmission-session.md | Transmission import / export |
| bench/README.md | Smoke and throughput harness |
cargo fmt --all
cargo build --release
cargo test
cargo run -- doctor
./bench/smoke.pyMIT.