2026-??-?? 0.16.0a0 * New column in torrent lists: labels (Thanks to @rsekman) 2026-10-09 0.15.0a0 * Added support for JSON-RPC 2.0 protocol introduced by Transmission 4.1.0. (Thanks to @rsekman) * New command: fileopen. (Thanks to @rsekman) * Added support for sequential downloading. (Thanks to @rsekman) * Fixed compatibility with newer urwid versions. 2026-01-24 0.14.2a0 * Fix for Python >= 3.14: TypeError: NotImplemented should not be used in a boolean context 2025-12-09 0.14.1a0 * Fix for Python >= 3.14: RuntimeError: There is no current event loop in thread 'MainThread'. * Fix for Python >= 3.14: SyntaxWarning: 'break' in a 'finally' block 2025-09-09 0.14.0a0 * Added "infohash" column * Fixed some display issues with zero-width and double-width characters in torrent name 2025-03-07 0.13.0a0 * Added support for labels (Many thanks to @rsekman) 2025-01-11 0.12.12a0 * Prevent infinite loop in `interactive` command (Many thanks to @rsekman) 2024-09-01 0.12.11a0 * Improve file list performance (Many thanks to @rsekman) 2024-06-08 0.12.10a0 Fixed: * Ignore GridFlowWarning: Size is smaller than cell width 2024-05-23 0.12.9a0 Fixed: * Catch UnicodeDecodeError when decoding JSON from server response * Use urwid-native scrolling widgets (As always, many thanks to @rsekman for doing my work!) 2023-12-21 0.12.8a0 Fixed: * Catch ZeroDivisionError when estimating peer download rate 2023-11-02 0.12.7a0 Fixed: * Catch RuntimeError from urwid 2023-09-23 0.12.6a0 Fixed bugs: * Remove urwid patch that became incompatible with urwid ~2.1.0 (Fixes AttributeError: module 'urwid' has no attribute 'decoration') 2023-06-30 0.12.5a0 Fixed bugs: * Further improvements for upcoming urwid release, making the TUI more responsive (All thanks to @rsekman!) 2023-06-02 0.12.4a0 Fixed bugs: * Improve compatibility with upcoming urwid release 2022-04-13 0.12.3a0 Fixed bugs: * Fix AttributeError: module 'stig.objects' has no attribute 'aioloop' when removing 10 or more torrents via the CLI 2021-08-10 0.12.2a0 Other changes: * "unbind --all t" now unbinds "t" in all keybinding contexts. Fixed bugs: * Removed tilde expansion from completion candidates for the :move command 2021-02-09 0.12.1a0 Fixed bugs: * Fix "Unclosed client session" error when not using the TUI 2021-02-07 0.12.0a0 Other changes: * New "connect.proxy" setting that specifies a SOCKS tunnel for RPC communication. * Move cursor to the end of command when moving through history in the builtin CLI. Fixed bugs: * Re-add "paused" alias for "stopped" filter to make the keybinding

working again. * Fix "RuntimeError: Event loop stopped before Future completed." when exiting the TUI. 2020-07-04 0.11.2a0 Fixed bugs: * Include user and password in "connect.url" setting. This fixes a bug where the password is not stored properly when dumping settings. 2020-06-20 0.11.1a0 Fixed bugs: * Fix help for remote settings, e.g. "help srv.path.incomplete". * Possibly fixed a race condition that resulted in new torrent lists being empty until the next poll iteration. 2020-06-05 0.11.0a Breaking changes: * The 'scrollbar' palette in themes was removed and the following palettes were added: torrentlist.scrollbar filelist.scrollbar peerlist.scrollbar trackerlist.scrollbar settinglist.scrollbar log.scrollbar helptext.scrollbar * Some redundant torrent filters were removed: - "incomplete" is the same as "!complete" - "public" is the same as "!private" * The "summary" command was renamed to "details". * When renaming files, the "rename" command now attempts to rename files in all matching torrents. When renaming torrents or if the new --unique option is given, the torrent filter expression must match exactly one torrent or nothing is renamed. This also works when renaming the focused file or directory in file lists in the TUI. * Renaming a torrent to an existing file/directory is now possible. * GeoIP support was dropped[1] and the peer list filter, column and sorter "country" as well as the settings "geoip" and "geoip.dir" were removed. If you use a custom theme, you also need to remove the "country" parts from it. * Some default keybindings for sorting lists have changed. Other changes: * Press in the built-in CLI to complete commands and arguments. * Move tabs with and . * Display free space in the bottom bar. * The command 'dump' collects settings, keybindings and open tabs, translates them into commands and writes them to a file or stdout. It is bound to by default. * Filters can use regular expressions with the new '=~' operator. * The command 'magnet' creates magnet URIs for torrents. * The help structure was changed so that lists of commands/filters/settings and manuals explaining the concepts are separate. * Added "hash" filter to find torrents by info hash. * Peer download rate estimates are now always calculated, not just when a peer list is focused. * New 'connect.url' setting allows you to set host, port, etc with a single command. * The 'sort' command's --delete argument removes sort orders from the current list. Fixed bugs: * File filters caused a crash when applied to single-file torrents. * Fixed crash with "Filter can't end with operator". * Download priority in TUI file lists is now updated correctly. * Parameters for any command's --sort option didn't accept aliases. * Setting filters are now documented (`help filters`). * When 'remove.max-hits' triggered, the displayed list of torrents didn't handle spaces correctly. [1] https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases 2018-09-25 0.10.1a Fixed bugs: * For torrents with exactly one directory that contains exactly one file, listing its files in the TUI resulted in a crash: KeyError: 'is-wanted' 2018-09-07 0.10.0a Breaking changes: * The 'tui.cli.history-file' setting was removed (see 'tui.cli.history-dir' below) * Filter values with a space at the start or end must now be enclosed by single or double quotes (see `help filter`). * The short option '-ca' for the 'tab' command was renamed to '-C'. * In peer lists, the 'ip' column, filter and sorter was renamed to 'host'. Other changes: * The TUI command 'interactive' lets the user edit a predefined command interactively before executing it. * The TUI command 'setcommand' opens and pre-fills the command line with any string. * The TUI command 'limit' applies a second filter to any list. * The TUI command 'find' highlights and jumps to a search phrase (currently only help texts are supported). * The command 'rename' allows renaming torrents and files or directories within a torrent. * Keybindings can now have descriptions which are displayed in the output of `help keymap` and when completing key chains. * New default torrentlist/filelist/etc keybinding quickly reduces long lists. * New default helptext keybindings , and add support for 'less'-style(-ish) highlighting and searching in help texts. * New default keybindings in torrent lists and in file lists rename torrents, files and directories interactively. * New default keybinding asks you where to move a torrent. * New 'remove' option --force removes an unlimited number of torrents without confirmation. * New setting 'remove.max-hits' can be set to a negative number to never ask for confirmation when removing torrents. * New setting 'tui.cli.history-dir' specifies a directory instead of a file, which allows having a history for each interactive command (i.e. when pressing you can recall previous inputs with and like in 'less'). The old history file is automatically moved to its new location /commands. * All time-based filters now accept relative time deltas (e.g. "1h30m") and absolute time stamps (e.g. "2018-07-05"). Their behaviour has also changed slightly (see `help filters`). * The completed time of a torrent now defaults to the time it was added if it was never downloaded (e.g. if you're the original uploader). * The default filter in peer lists is now 'host'. * 'comment' was added as a torrent filter. * 'ratelimit' command displays current limits if no new limit is given. Fixed bugs: * No longer crash with a KeyError when listing peers with an unknown country code. * In yes/no prompts, default to 'no' in non-interactive mode (when stdout is not a TTY). * Using a boolean filter as a comparative filter (e.g. 'downloading = asdf') now results in an error. * Fix rare crash in peer lists: "TypeError: __str__ returned non-string (type NoneType)" 2018-05-07 0.9.0a Changed dependencies: * The legacy GeoIP module has been replaced by maxminddb https://pypi.org/project/maxminddb/ Breaking changes: * The names and aliases of columns, filters and sorters have been changed again (sorry) to make them more consistent and easier to guess (e.g. the column 'rate-limit-up' is now called 'limit-rate-up' like the setting 'srv.limit.rate.up' and '%dn' is now a filter, sorter and column in all lists (if applicable)) * The setting 'srv.url' was replaced by the new settings 'connect.host', 'connect.port', 'connect.path', 'connect.user', 'connect.password' and 'connect.tls' (Thanks to David Blajda for adding 'connect.path') * The setting 'srv.autostart-torrents' was renamed to 'srv.autostart' * The history for the built-in command line is now stored in ~/.local/share/stig/history by default (Thanks to Paulo Marcel Coelho Aragão) Other changes: * The 'set' command now shows a list of settings when called without arguments * The value of a setting can now come from shell command, e.g. `set connect.password:eval pass transmission` * Setting any list with a limited number of options to "*" sets it to all options (e.g. `set columns.torrents '*'`). This also works for --columns and --sort arguments options (e.g. `lsp -c '*'`). * New setting 'geoip' enables/disables country code lookups for peer lists * New setting 'geoip.dir' specifies where the geolocation database is cached * In peer lists, peers' host names are displayed instead of their IPs (may be slow; disable with 'set reverse-dns false') * Process name in tmux sessions is set to 'stig' if setproctitle module is installed (Thanks to Kutsan Kaplan and Nicholas Marriott) * 'ratelimit' command now prints the new limit by default for global and per-torrent rates unless the --quiet option is given * Added torrent list column: 'id' * When listing files in the CLI, the 'name' column now contains the absolute path to each file if stdout is not a TTY * Filter operators ("&" and "|") are now escapable with "\" Fixed bugs: * Mitigate high CPU load for urwid 2.x and later * Invalid tracker URLs (e.g. with port -1) don't cause crash anymore * Catch SIGINT () in CLI mode * The values of the settings 'connect.port' and 'srv.port' are now properly displayed in 'help' output 2018-02-25 0.8.3a Fixed bugs: * Remove hardcoded 60 second interval so updates heed the 'tui.poll' setting * Fix ugly error message on exit if command fails 2018-02-23 0.8.2a Fixed bugs: * Compatibility with aiohttp 3.0 2017-11-27 0.8.1a Fixed bugs: * stig crashed with "'TransmissionURL' object has no attribute 'username'" when trying to connect to daemon with user and password * Documentation in default.theme file was confused about double negatives 2017-11-25 0.8.0a Breaking changes: * Some filters, sorters and columns have been renamed for consistency * The file priority 'shun' is now called 'off' * The 'details' command has been renamed to 'summary' ('details' still works as an alias) * The default keybindings to start/stop torrents have changed from and to and (so we can open the peer list with ) * For boolean settings, the values 'enable'/'disable' have been replaced by 'enabled'/'disabled' * The 'clearlog' command has been removed (see new 'log' command) * The setting 'tui.cli.history' has been renamed to 'tui.cli.history-file' * The 'rate' command now accepts the same values for its LIMIT argument as the settings 'srv.limit.rate.up/down' Other changes: * New commands: 'trackerlist', 'tracker add|remove' * New contexts for keybindings: trackerlist, tracker * New command 'log' can clear the log, scroll up/down and append info/error messages to it * New server settings: srv.utp, srv.dht, srv.pex, srv.lpd, srv.port, srv.port-forwarding, srv.limit.peers.global, srv.limit.peers.torrent, srv.autostart-torrents, srv.part-files, srv.encryption * New setting: tui.cli.history-size * New setting: remove.max-hits sets the maximum number of torrents that are deleted without extra user confirmation * Filters, sorters and columns now have shorthand aliases * New default keybinding: opens a torrent's peer list * New default keybinding: opens a torrent's tracker list * now hides/shows the log and clears it * reverts a partially entered keychain by one character * is now bindable and no longer raises KeyboardInterrupt * Newlines in rc files can now be escaped with "\" to break up long lines * The 'rc' command is now available on the CLI * The 'rc' command no longer fails if it encounters a command that is not supported by the active interface * Foreground colors in the tab bar are now all bright in the default theme * Time deltas now show seconds if less than two minutes away * Use pyxdg module instead of appdirs (if you installed with pip, run `pip3 uninstall --yes xdg`) Fixed bugs: * Long torrent lists in narrow terminals no longer take ages to print * In torrent details, the 'Completed' date was displayed as the unix epoch (1970-01-01 ...) if unknown, and the 'Ratio' was displayed as negative values if unknown/not applicable * Don't throw 'Unclosed client session' errors when opening multiple torrent lists at once while not being connected to the daemon * Don't crash with 'KeyError' exception when opening many torrent lists at once while being connected to the daemon * Some columns in torrent, peer and file lists were unnecessarily wide * Don't crash with BrokenPipeError when piping output to tools like 'head' 2017-06-13 0.7.3a Fixed bugs: * Do what the previous release said (Come on brain, you used to be cool!) 2017-06-12 0.7.2a Fixed bugs: * 'peerlist' command crashed with a NameError if no title was specified 2017-06-09 0.7.1a Fixed bugs: * Pressing or with a modifier (namely ) resulted in a crash 2017-06-08 0.7.0a Breaking changes: * File lists are now opened with instead of Other changes: * Scrollbars to indicate scroll position * Scroll one page up/down with / * New commands - 'details' displays detailed information about a single torrent (bound to by default) - 'sort' changes the sort order of existing torrent and peer lists (bound to by default) - 'rate' limits the download and upload rates of individual torrents or globally * New torrent list columns 'rate-limit-up' and 'rate-limit-down' that show a torrent's individual rate limits * New 'tab' command option --close-all closes all tabs * New 'unbind' command option --all removes all keybindings * New 'add' command option --path downloads to a custom path * New log messages are now automatically hidden after showing them for 10 seconds. (You can always toggle with .) * New contexts for keybindings: 'torrentlist', 'filelist', 'peerlist' * is now an alias for * Quick help in top bar now reacts to changed keybindings even after the initial start * Sort orders are deduplicated Fixed bugs: * The settings 'tui.log.height' and 'tui.log.autohide' didn't do anything * 'tui' command can hide/show/toggle multiple elements, as documented * Keybinding context 'file' was not documented in help for 'bind' command 2017-04-24 0.6.0a Breaking changes: * Column 'peers-seeding' is now called 'seeds' * Column 'peers-connected' is now called 'connections' * Peer sort order 'name' is now called 'torrent' Other changes: * Custom tab titles with `tab -t 'My Title' * New columns: 'available', '%available' * New peer filter: 'country' * With no default rc file present, create several tabs with different lists instead of just one with all torrents * Negative tab focus positions (e.g. `tab --close -1` deletes the rightmost tab) * Default torrent list columns have changed (see `stig help columns.torrents`) * Allow missing leading zero for float numbers < 1 (e.g. ".14" -> 0.14) * Smaller space between tab titles Fixed bugs: * Tab titles are now broken up into multiple lines if necessary * File filter 'size' refused to parse numbers like '100MB' 2017-04-05 0.5.0a Breaking changes: * In color themes, 'torrentlist.name.initializing...' is now called 'torrentlist.name.discovering...' Other changes: * New torrent list columns: 'status', 'created', 'added', 'started', 'activity', 'completed', 'error' * New sort orders: 'created', 'added', 'started', 'activity', 'completed' * New file filter: 'path' * Listing isolated torrents with now lists only 'name', 'tracker' and 'error' columns * Torrent paths and torrent file paths are now normalized so that 'foo/bar/baz' is equal to 'foo/bar/baz/' and even 'foo/./bar/../bar/baz//' Fixed bugs: * Listing files crashed if file list was empty (e.g. when torrent was added by magnet link and metadata wasn't downloaded yet) 2017-03-22 0.4.1a Fixed bugs: * Marking files resulted in a crash 2017-03-16 0.4.0a Breaking changes: * In color themes, 'torrentlist.tpath' is now called 'torrentlist.path' * The following settings have been renamed: - tlist.columns -> columns.torrents - plist.columns -> columns.peers - flist.columns -> columns.files - tlist.sort -> sort.torrents - plist.sort -> sort.peers Other changes: * New commands 'mark' and 'unmark' select multiple torrents/files for an action * New command 'unbind' to remove any keybinding * Display the number of items in peer/file list tab titles * New column 'tracker' in torrent lists Fixed bugs: * Key combination did not work * 'version' command now produces proper return code 2017-02-23 0.3.0a Breaking changes: * Instead of '|', the commands 'list' and 'filelist' use horizontal tab characters ('\t') as column delimiters in machine-readable output Other changes: * New command: 'peerlist' * New theme option 'bright_is_bold' * Paused torrents are blue instead of dark gray, which seems to have better contrast in most color schemes * Tab command has new '--background' option to open tabs without focusing them Fixed bugs: * Pressing any F* key crashed the application * With no torrent lists open, stig would become unresponsive due to an endless loop * Setting 'srv.limit.rate.up/down' to boolean values displayed an error about 'off' not being a number 2017-02-01 0.2.0a Changes: * Proper chaining of commands with '&', '|' and ';' (see 'help commands') * Display number of torrents in tab titles * moves to left tab after closing focused tab * 'tab' command no longer accepts -/+ for left/right tab * default.theme file now documents how to make your own theme Fixed bugs: * 'set tui.theme path/to/theme' crashed the TUI * Empty file list when opened and closed rapidly * Long, wrapped log messages were not displayed * <+> was wrongly interpreted as a key chain with two empty keys 2017-01-16 0.1.0a IMPORTANT: Keybindings have changed; run 'stig help keys' for a list. New features: * Chained keybindings (like in Emacs) * Add 'move' command to change torrents' download path * Add 'announce' command to re-announce torrents manually to tracker(s) * More accurate torrent ETA ("1h28m" instead of just "1h") Fixed bugs: * Page up/down keys are working again in torrent lists 2017-01-02 0.0.3a * Fix bug in setup.py when README.org was missing