Skip to content

intuis/rustmission

Repository files navigation

Rustmission

Performant TUI client for Transmission daemon capable of managing hundreds of torrents.
It boasts a rich feature set that surpasses many other clients, offering a seamless torrenting experience :3

⚠️ Torrents you see are just samples fabricated by AI. Piracy is not something we tolerate here at Intuis.

Features

  • Basic operations: Allows to add, pause, remove, fuzzy filter your torrents.
  • Built-in magnet search: Search for magnets without leaving your terminal.
  • Asynchronous: UI is always responsive.
  • RSS: Fetch torrents automatically with a cronjob using --fetch-rss

Requirements

Installation

Packaging status

To install Rustmission, ensure you have Rust and Cargo installed on your system, and then run:

cargo install rustmission

or with Nix ( ❤️ @0x61nas ):

nix-shell -p rustmission

or with Brew ( ❤️ @aidanaden ):

brew install intuis/tap/rustmission

Usage

Run rustmission in your terminal to initialize the config and make adjustments as needed. Subsequently, run rustmission again. For a list of keybindings, press ? or F1.

Configuration

Rustmission stores its configuration in a TOML file located at ~/.config/rustmission/config.toml by default. You can modify this file to set the daemon's address.

[general]
# Whether to hide empty columns or not
auto_hide = false

# Possible values: Red, Green, Blue, Yellow, Magenta, Cyan.
# Use prefix "Light" for a brighter color.
# It can also be a hex, e.g. "#3cb371"
accent_color = "LightMagenta"

# If enabled, shows various keybindings throughout the program at the cost of
# a little bit cluttered interface.
beginner_mode = true

# If enabled, hides header row of torrents tab
headers_hide = false

[connection]
url = "http:https://CHANGE_ME:9091/transmission/rpc" # REQUIRED!

# Refresh timings (in seconds)
torrents_refresh = 5
stats_refresh = 5
free_space_refresh = 10

# If you need username and password to authenticate:
# username = "CHANGE_ME"
# password = "CHANGE_ME"

[torrents_tab]
# Available fields:
# Id, Name, SizeWhenDone, Progress, DownloadRate, UploadRate, DownloadDir,
# Padding, UploadRatio, UploadedEver, AddedDate, ActivityDate, PeersConnected
# SmallStatus
headers = ["Name", "SizeWhenDone", "Progress", "DownloadRate", "UploadRate"]

There's also a self-documenting keymap config located at ~/.config/rustmission/keymap.toml with sane defaults.

Alternatives

Contributing

If you'd like to contribute make sure you fork this repo and submit a PR!
If you want to implement something major, create an issue first so it can be discussed.