Added
- New
clipboardStacking
option in config defaults. When enabled, it allows users to capture multiple content for the{{clipboardContext}}
placeholder. - New
autoUpdateConfig
option to choose to autoupdate config or not during service restart. - Added
clipboardBuffer
option in the defaults of the config to set custom buffer time for{{clipboardContext}}
to be captured. - New Alfred Workflow!
- Added validation and error notification when user attempts to schedule a non-existing action.
Changed
- Fixed
clipboardContext
placeholder bug where it wouldn't detect the clipboard captured if it was the same that already was in the clipboard before the buffer or starting a session. - Adjusted JSON schema to only require the very essential defaults.
- Voice triggers now support raw regex. For this, the phrases have to be exactly between
==
. For example==^google this\\.?$==
will exactly match this phrase. Or if you want to match a string that ends with a specific phrase:"==.*ends with this$=="
. This can be mixed with strings that are processed as usual, without==
. For example:==^exact match$==|normal keyword
. Mode triggers and app triggers already have this behavior by default (without==
). - Added trimming to selectedText, clipboardContext, appContext.
- Improvements for URL encoding in actions
- Improvement and fix for
{{selectedText}}
placeholder. Previously it was being captured on action execution, now it only gets captured when session starts. - Socket communication has been completely rewritten to include safety timeouts, better error handling, and avoid memory hangs. There's also an automatic backup system to prevent config files corruption.
Walkthrough
I just shared an in-depth video on URL Actions. I also dive into some use cases for the new context placeholders.
How to Update
If Installed through Homebrew
brew update
brew upgrade macrowhisper
macrowhisper --restart-service
Why do you need to re-grant accessibility permissions after update?
MacOS stores accessibility permissions tied to the absolute file path, not the application signature. Since Macrowhisper is a single binary application rather than an app bundle, when Homebrew upgrades it, the application gets placed in a version-specific folder. Each brew upgrade causes the binary to be stored at a different path, which macOS treats as a completely different application, effectively resetting the accessibility permissions.
You'll notice multiple versions of Macrowhisper appearing in your System Settings → Privacy & Security → Accessibility panel after updates. You can manually remove these stale entries when upgrading, but unfortunately there's no automatic workaround as long as you install using Homebrew due to this path-based permission system.
Alternative installation option: If you prefer not to re-grant accessibility permissions after each update, you can install Macrowhisper using the script instead of Homebrew (you do need to uninstall using Homebrew first).
If Installed with Script
curl -L https://raw.githubusercontent.com/ognistik/macrowhisper/main/scripts/install.sh | sh
macrowhisper --restart-service