User Manual

upsies comes with a mixed TUI/CLI interface. Subcommands provide a variety of functions that can be configured with options and configuration files. Every subcommand (and subsubcommand) provides a --help/-h option that explains what it does and the arguments it accepts. See CLI Reference for a complete overview.

Input/Output

Subcommands do one or more jobs and print the result to stdout. If a subcommand does multiple jobs (e.g. creating and uploading screenshots), the final result is the last job’s output.

If stdout is not a TTY (e.g. when it is redirected to a file or a pipe), the TUI is printed to stderr. For example, you can run upsies screenshots file.mkv --upload-to imgbox | xclip and then paste the screenshot URLs.

User input comes from configuration files, CLI arguments and interactive prompts. You should only be bothered by a prompt if upsies is unsure about its autodetection capabilities.

Configuration files

Configuration is stored in INI files beneath $HOME/.config/upsies/ or $XDG_CONFIG_HOME/upsies/ if $XDG_CONFIG_HOME is set. You can edit configuration options with a text editor or with upsies set <option> <value>.

Warning

You will lose any comments and order if you use the set subcommand for setting options.

upsies set without any other arguments prints a list of configuration options and their values. To get the value of a specific option, run upsies set <option>.

Along with some more information, upsies set -h prints a list of options with their type.

BitTorrent clients

$HOME/.config/upsies/clients.ini specifies connections to your BitTorrent client instances. You can create it with commented-out defaults by running upsies set --dump clients. The section names in clients.ini are used to identify a running client instance. For example, trackers.*.add_to must be set to one of the section names in clients.ini.

By default, the section names are the names of supported clients, e.g. qbittorrent or transmission. If you are running multiple instances of the same BitTorrent client, you can change the section names to anything you like (e.g. nas or my best seedbȯx). But if you do that, you have to specify the type of connection by setting the client option to a supported client name like qbittorrent or transmission.

For example, these two sections are identical, except that one is named qbittorrent and the other is named home:

[qbittorrent]
url = http://localhost:4321
username = AzureDiamond
password = hunter2

[home]
client = qbittorrent
url = http://localhost:4321
username = AzureDiamond
password = hunter2

Caching

Generated metadata is cached and re-used as much as possible. You can cancel upsies at any time, run the same command again, and it should continue without losing too much progress.

Note

The torrent can only be created in one go.

If you made a mistake and you need to regenerate metadata, use the --ignore-cache/-C option. Note that this is a global option and must come before any subcommand, e.g. upsies --ignore-cache release-name The.Foo.2000.x264.mkv.

For easy inspection and debugging, cached metadata is stored in files beneath $HOME/.cache/upsies/ or $XDG_CACHE_HOME/upsies/ if $XDG_CACHE_HOME is set. You can also set config.main.cache_directory to permanently change the location of cache files.

The size of all cache files combined is limited to 100 MB by default. The oldest files are purged until the size limit is no longer exceeded. You can change the cache size limit by setting config.main.max_cache_size.