Taking inspiration from prefix keys and prefix arguments, Transient implements a similar abstraction involving a prefix command, infix arguments and suffix commands. We could call this abstraction a "transient command", but because it always involves at least two commands (a prefix and a suffix) we prefer to call it just a "transient". When the user calls a transient prefix command, then a transient (temporary) keymap is activated, which binds the transient's infix and suffix commands, and functions that control the transient state are added to `pre-command-hook` and `post-command-hook`. The available suffix and infix commands and their state are shown in a popup buffer until the transient is exited by invoking a suffix command. Calling an infix command causes its value to be changed, possibly by reading a new value in the minibuffer. Calling a suffix command usually causes the transient to be exited but suffix commands can also be configured to not exit the transient. WWW: https://github.com/magit/transient