Version 0.10.0 of package Transient has just been released in GNU ELPA. You can now find it in M-x list-packages RET.
Transient describes itself as: ================== Transient commands ================== More at https://elpa.gnu.org/packages/transient.html ## Summary: 1 Transient command menus ═════════════════════════ Transient is the library used to implement the keyboard-driven “menus” in [Magit]. It is distributed as a separate package, so that it can be used to implement similar menus in [other packages]. [Magit] <https://github.com/magit/magit/> [other packages] <https://melpa.org/#/transient> 1.1 Some things that Transient can do ───────────────────────────────────── • Display current state of arguments • Display and manage lifecycle of modal bindings • Contextual user interface • Flow control for wizard-like composition of interactive forms • History & persistence • Rendering arguments for controlling CLI programs 1.2 Complexity in CLI programs ────────────────────────────── ## Recent NEWS: # -*- mode: org -*- * v0.10.0 2025-09-01 - Added more context-specific functions for getting the prefix's value and improved the documentation explaining when to use which function and why. b4edb633 (See also the commit message.) - When suffixes are being initialized, no longer drop inactive suffixes (inap suffixes and those on a level that is currently not being used). If/when such a suffix later becomes active, it now uses its set or saved value; previously the default value would have been used. #316, #364, #407 - The value and scope of inapt suffixes are now initialized when the prefix is being initialized, which is useful because they may later become apt. #407 - While setting up suffixes, the suffix being setup can now access suffixes that have already been setup (including their values). #316 - After suffixes have been setup, the value of the prefix's ~value~ slot is now made unbound, to prevent access to this potentially outdated value. 5bf26de9 - Added new face ~transient-inapt-argument~ and use it for arguments and values that are set but aren't being used because the suffix is currently inapt. fed866ba - Added new prefix slot ~remember-value~, which allows specifing various modes of automatically saving the current value. #287 * v0.9.4 2025-08-01 - When using coordinates, trying to insert the same suffix into the same menu twice, caused it to instead be removed the second time. #400 * v0.9.3 2025-07-01 - Improved kludge to work around a bug in Emacs, which may cause a subprocess to be killed, when the user types ~C-g~, expecting that to quit a transient menu. #388 - Fixed an edge-case when trying to put point on the same suffix after refreshing the menu. e508e658 - Removed an unnecessary redraw, which additionally happened too early, before suffixes were refreshed. #397 * v0.9.2 2025-06-09 - Fixed a regression in v0.9.0, which made it impossible to change the level of a suffix, if that was set inline in the prefix definition. * v0.9.1 2025-06-03 - As an additional safety measure, unconditionally reset ~inhibit-quit~ when the emergency exit is taken. b326421f - Including groups that are still defined as a variable, instead of using ~transient-define-group~ (added in v0.9.0), failed in some cases and prevented the menu from being displayed at all. #389 * v0.9.0 2025-06-01 - Key descriptions (as returned by ~key-description~ and understood by ~kbd~) are now the only key binding format understood by Transient. Vectors are no longer supported. c4e0cba6 - Vectors are now preferred to identify a suffix or group in a menu by coordinates. It is still possible, but discouraged, to use a list. 1933dda9 - The internal format used to store menu layouts has been improved. The old format is still supported and translated on the fly when encountered. Instead of rely on that translation, users are advised to recompile dependent packages after updating Transient to this release. bcc0bf83 - Added new macro ~transient-define-group~, which defines one or more groups of suffixes to be included in multiple menus. Such included groups are no longer immediately inlined when referenced in a menu definition, which makes it possible for users to make changes to included group and have those change affect all menus that include them. bcc0bf83 - Added new macro ~transient-inline-group~, which inlines an included group into a specific menu. bcc0bf83 - Added new, experimental suffix class ~transient-cons-option~, which is intended for situations where ~transient-args~ should return an alist, instead of a list of strings (arguments). 81727bac, e8eb3ebd - While a transient menu is active, ~inhibit-quit~ is now set to t. #388 * v0.8.8 2025-05-01 - Added option ~transient-common-command-prefix~ to allow using a key other than ~C-x~ as the prefix key used for many commands common to all transient menus. Because the use of the ~C-x~ prefix for these ... ...