Random variant firing on text expansions. Toggle "Fire a random variant" on any expansion with two or more variants and Keyfire picks one at random instead of showing the picker. Perfect for greeting variations, response templates, and anything you want to vary automatically.
Nested expansions with {{expansion:trigger}}. Reference another expansion's text inside your snippet. Combine building-block phrases without copying content between them.
Aliases on expansions. Give the same expansion multiple triggers. Type brb, back-soon, or bbl and any of them fires the same snippet.
Change Audio Output macro step. Bind a hotkey to switch your default audio device instantly. Perfect for one-key toggling between headphones and speakers. F12 to headphones, F11 to speakers, done.
Random pick function in the expression engine (Pro): {set greeting = random("Hi", "Hello", "Hey")} picks one option per fire.
Function palette inside the Expression / Set-variable popup. Every built-in function (upper, lower, substring, round, dateadd, if, random, and 13 more) as click-to-insert chips, grouped by category.
Number-key direct fire on the variant picker. Press 1 to 9 or 0 on the number row or numpad to fire that variant instantly, no arrow-key navigation.
Global variables are now free. Basic name and email substitution no longer requires Pro. {{var:my.name}} in any expansion works out of the box.
Improved
Fill-in defaults now resolve tokens. Setting default={{var:my.name}} on a fill-in field now pre-fills the input with your name instead of showing the token literally. Same for {clipboard}, {date}, and other tokens.
Distilled macro replay respects the Clear button. When you clear a macro's target-app binding, the macro now really runs against whatever is focused instead of silently trying to resolve the original recording's app.
Distilled macros no longer yank across virtual desktops. If you record a macro on Desktop 1 and fire it on Desktop 2, focus stays on Desktop 2. Window lookups filter to the current desktop.
Wait timing in distilled macros preserves natural pauses. Previously, wait steps under 500ms were dropped, which broke UI navigation macros that relied on 200-400ms pauses between clicks. Now UI-navigation gaps down to 100ms are preserved, while typing runs still coalesce cleanly.
Fixed
Stop-recording hotkey now works on fresh profiles. Ctrl+Alt+R stops an in-progress recording even when Quick Record has not been configured in Settings. Previously, blank profiles could only stop via the Stop button on the pill.
Global variables no longer have a broken random-pick UI. That option was removed in favor of the new variant-random toggle and expression-engine random(), which handle the same use case more clearly.