Added
-
New JSON schema to assist users when editing the configuration file in their IDE.
--schema-info
- new CLI flag to debug schema issues.
-
New
{{selectedText}}
,{{clipboardContext}}
, and{{appContext}}
dynamic placeholders for Macrowhisper actions. They support all the standard placeholder features:- Basic:
{{selectedText}}
- Gets selected text with action-type escaping - JSON-escaped:
{{json:selectedText}}
- Applies JSON string escaping - Raw:
{{raw:selectedText}}
- No escaping (useful for AppleScript) - Regex replacements:
{{selectedText||this||that}}
- Apply text transformations - These placeholders open up many new possibilities for users that are sending their dictation results to other AI apps.
- NOTE: These context placeholders use content captured by Macrowhisper, not Superwhisper. This means that they also work on voice-only modes without AI. This is particularly useful if you want to use Macrowhisper actions to send your dictation results to other AI applications. These rely on both accessibility permissions and the level of integration your front app has with macOS accessibility features.
- Basic:
-
New
--schedule-action [<name>]
CLI flag.- It schedules an action which is prioritized above any trigger.
- This scheduled action has a customizable timeout with a new
scheduledActionTimeout
option in the configuration. If no dictation begins before X amount of seconds, the scheduled action will be cancelled. - A scheduled action can also be cancelled by sending the
--schedule-action
flag without any arguments.
Changed
-
Macrowhisper can now work with empty "result" values—since Superwhisper itself can also do this. This means that when using a Superwhisper mode that has AI, the mode can process captured context alone (without dictated text). Macrowhisper will also trigger actions properly based on this. Note: This is experimental and could be removed from Superwhisper anytime.
-
Configuration file is now automatically updated when service starts to include new values and schema changes.
--config-update
- new CLI flag to manually update configuration.
-
Clipboard synchronization improvements to support the optional
{{clipboardContext}}
placeholder.- Clipboard context for placeholder use is only captured either 5 seconds before starting dictation or during dictation (similar to Superwhisper).
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