Skip to content

aidanaden/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://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.

About

TUI for the Transmission daemon

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.3%
  • Nix 0.7%