Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Keyboard Maestro 11 (stairways.com)
200 points by DavideNL on Oct 25, 2023 | hide | past | favorite | 73 comments


Keyboard Maestro is my favorite applications ever. It's the one-stop-shop for an astounding array of powerful features. It can be used to replace ton of other third-party utilities. Some examples of what it can do:

1. You can easily implement your own window manager in it, e.g., replaces Moom or Magnet.

2. You can bind any AppleScript, shell script, etc... to a keyboard shortcut.

3. You can record and replay GUI macros, e.g., like Vim and Emacs macros but for any application.

4. At has a ton of built-in actions to script practically anything about your system, e.g., sleep, simulating media keys, image manipulation, etc... I suspect a lot of uses of Karabiner can be replaced by Keyboard Maestro.

5. It has a built-in clipboard history, with powerful features, like, processing an item from the clipboard with a Keyboard Maestro macro. One I use sometimes is running OCR on a screenshot I have on the clipboard.

6. You can bind any menu item in any application to a keystroke. E.g., you can rebind menu items to other keys, or adding key bindings to menu items that don't have keyboard shortcuts.

7. You can create custom command palettes (i.e., like ⇧⌘P in VS Code) for applications. For example, the command palette in Photoshop is awful, so I just made one for my common actions in Keyboard Maestro instead.

All of the above can sync seamlessly between computers with any file sync service (e.g., Dropbox). It's probably the best sync I've ever used, in 5+ years of use I've never had even the slightest hiccup. I don't bother using macOS built-in settings for things Keyboard Maestro supports for this reason. Put it in Keyboard Maestro and it will automatically sync to any Mac I use (I always install Keyboard Maestro).


> 6. You can bind any menu item in any application to a keystroke. E.g., you can rebind menu items to other keys, or adding key bindings to menu items that don't have keyboard shortcuts.

This is a macOS feature (either globally or per app) and doesn’t need a separate app. For example, I have ⇧⌘M mapped to Window > Zoom (the inverse of Minimize).

This is now hidden deep in System Settings > Keyboard > Keyboard Shortcuts button > App Shortcuts.


I just want to call out the how nice it is to have a global view of all the keyboard shortcuts like this. Including for applications you might not have open. It makes it a million times easier to fix up situations where two applications want to use the same keyboard shortcut and that causes some kind of issue… which is usually not a problem but can be a major pain when one or more of the conflicting shortcuts are global shortcuts that don’t require the application to have focus or be in the foreground.

Being able to jump into this settings pane and find the issue then simply remap one … infinitely easier than fixing this kind of thing on Windows… where last time I tried literally none of the “list keyboard shortcuts from all open applications” tools I could find worked at all on Windows 10.


But you don't have such a global view if an app decides to mess with globals, so not sure what the difference is vs Windows


How are you listing keyboard shortcuts on Windows? I have this problem all the time where I want to bind some Autohotkey sequence to a keystroke and can’t find one not in use. I would love some way that shows me all (or even most or even some!) shortcuts used by all the applications I’ve installed.

Failing that, it would be nice if there was a convention that some modifier sequence was reserved for user and should not be used by applications.


Oh, I wasn't denying the issue exists, I was just arguing that all OS are bad at this, and Mac is no exception

I'm not listing shortcuts on Windows, I've read that it's impossible due to the way shortcuts are registered, you can at most find a list of shortcuts that aren't in use by any app by trying to set/unset them. And anyway the OS (nor the MS apps like Office) isn't even good enough to list its own shortcuts

The solution to this problem is to ignore the app and bind to whatever is best for you, AHK overrides apps, so native shortcuts won't interfere. And then if an app has a shortcut that you want to use, you could also rebind it natively within the app or if the app is dumb, just do it in AHK to `if app {my_key_combo::app_key_combo}`

Then re. search: in AHK I add comments to keybinds that allow me to easier find a shortcut across all ahk scripts in a text editor (but this isn't a perfect system either, I don't know of a perfect updated one)

> would be nice if there was a convention that some modifier sequence was reserved for user and should not be used by applications.

That's way too limiting, besides there isn't even a much simpler convention: every app should allow listing and changing every single keybind it uses


> and doesn’t need a separate app

Unfortunately it does since there is this dumb limitation of 1 shortcut per menu item

Also there is a big UI difference between having to type the whole thing from scratch (with easy typos ruining it and having to remember the separator) vs just selecting an item

(although the default has the benefit of a menu hint and also works when menu is renamed)


Unfortunately it doesn't always work. Finder eats shortcuts like ctlr-1 because it use this for assigning tags to files.

You also need to enter menu item names even though the system already knows those and could let you browse current menus.


Some applications make use of this macOS feature, like CheatSheet or Shortcat. I wish other platforms had a similar feature, I only know of vaguely similar behaviour in Vim/Emacs which which-key.


Thank you!


Hey how do you do #1?


Keyboard Maestro is excellent. Makes automation on macOS way more fun, IMO.

One nifty feature I haven't seen mentioned yet is that it can click on the screen based on OCR. So, if there's some UI element you want to interact with and you're not sure how to do it programmatically you can take a small screenshot of it and KM will use that to find the element on screen. Comes with useful visual debugging too.

Also, I find it pairs well with a launcher application like Alfred or Raycast:

- For Alfred: https://github.com/iansinnott/alfred-maestro - For Raycast: https://www.raycast.com/eluce2/list-keyboard-maestro-macros


Keyboard Maestro is fantastic, and it's even better when combined with an Elgato StreamDeck. There's great integration for "run this KM macro" directly from a button (without eating up a keyboard shortcut), so I have 32 handy buttons on my StreamDeck XL for things like

    * open Obsidian and switch to my daily journal page"
    * type my password" (which reads securely from Keychain)
    * find the hamburger menu on the wiki, move the mouse to it, then select 'Translate to English" from the menu that pops up
That last one is an example of one of Keyboard Maestro's superpowers: search for an image anywhere on screen, then take an action on it (move the mouse there, click it, etc.). Very very handy for automating things that can't easily be otherwise automated.


StreamDeck and Keyboard Maestro are a great pair. w With KM’s ability to update the keys on StreamDeck I use it as dashboard for items in addition to actions. A key displays next upcoming meeting and changes color as it gets close. Another key shows the current VPN IP in case I need to target internal services back to my development instance. For Teams, I have button that toggles the resolution of second Studio Display to share desktop with lower resolution.


Do you need to use the Stream Deck's own software at all, then? I'm allergic to janky manufacturer-provided config apps (I'm looking at you, Logitech), and the Stream Deck app's screenshots aren't awe inspiring. I'm also uneasy about running a driver app in the background at all times to monitor which apps I'm using. That seems ripe for abuse, either by attackers who find a vulnerability in it or by the manufacturer ("hey, you seem to spend a lot of time in Drafts.app. Would you like to buy a JavaScript manual?").


Unfortunately, the StreamDeck doesn't emulate a standard USB HID device, so it needs a driver running in the background to detect button presses and do things like generate keystrokes or call Keyboard Maestro macros.

There's streamdeck-ui (https://timothycrosley.github.io/streamdeck-ui/), which is an open-source alternative, but it at first glance it seems to be only for Linux.

There are a bunch of other macro/launcher pads like the StreamDeck that DO act as standard USB HID keyboards, though, and those should work fine with Keyboard Maestro using keyboard shortcut triggers.


> Unfortunately, the StreamDeck doesn't emulate a standard USB HID device

But it does expose itself as a custom HID device! This project uses connects to all the StreamDeck models over WebHID. https://github.com/petele/StreamDeck-Meet

So I think the driver paranoid are actually in a decent spot.


Ah, that makes sense.

Those other controllers are neat, but I want the pretty pictures, darn it!


You must use it, but it’s not that bad tbh

If we say that Logitech app is 10 on a scale good to, well, Logitech, then Streamdeck’s software is ~3


I haven't felt the need to change from bettertouchtool to KBM but this... I don't think I can do via BTT type my password" (which reads securely from Keychain)


Mind sharing your Obsidian workflow? As someone who installed Keyboard Maestro for the first time 3 hours ago it's not immediately apparent how to do this :D


You can create a keyboard shortcut on Obsidian that pulls your daily note page (I use cmd+D). You can then create a KM workflow that opens Obsidian and hits that hotkey for you.


Yup. I already had a shortcut bound in Obsidian to pull up the daily page, so the KM workflow is just

    * switch to Specific Application -> Obsidian
    * pause until... application "Obsidian" is at the front
    * type keystroke -> Cmd+Option+D   ; go to daily page
    * type keystroke -> Cmd+DownArrow  ; move cursor to the bottom
    * type keystroke -> Return         ; start new bullet in existing list


By far my favorite keyboard macro tool on MacOS. Great gui interface for making and recording macros. I think it is without a peer on any platform

I am well versed in AutoHotKey for Windows and have written 1000s of lines of macros in it, but Keyboard Maestro makes it so easy to create complex macros for even one time tasks.

Linux is certainly lacking in tools to automate the GUI.


KM is indeed an awesome tool and a must-have part of the productivity combo KM+BTT+KE, though complex macros are unfortunately an area where it falls flat since drag&dropping your way through the GUI to create and refactor complex logic is rather painful


Maybe that's just my limited experience but a lot of Linux software that comes with a GUI like Gimp, Libreoffice or even Isabelle tend to be accompanied by a CLI or API for automating tasks. That may be less accessible than a simple GUI automation but tends to be more powerful.

Though for GUI automation of, e.g., the increasing number of electron-backed apps more accessible software would be nice.


macOS is of course a Unix so it has support for CLI automation as well, and it's pretty common for macOS-exclusive applications to implement it where appropriate (e.g., https://kaleidoscope.app).

It also has several other forms of automation:

1. AppleScript, which often makes it faster to implement powerful scripts than a CLI because AppleScript has objects (e.g., you can iterate through the tasks in OmniFocus for example and use AppleScript's built-in date type to modify them).

2. Automator / Shortcuts, which uses a combination of hard-coded, configurable actions (e.g., an image editor would provide an action to resize an image), and URL-based automation (tell OS to open a URL, URL is sent to a specific app based on a URL scheme, app performs an action).

3. A GUI macro utility like Keyboard Maestro

I point this out because something I see frequently from folks using other OSes is to mention some other approach is better than something unique to the Mac, but macOS usually also supports that other way of doing things. These options are usually additive.


Keyboard Maestro has a CLI too. These aren’t mutually exclusive things, you can have well-designed GUI and well-designed TUI software. I would argue that while Linux has some of the latter (I am absolutely unwilling to give Linux credit for all command-line/text-based applications), it has very, very, very little of the former, largely due to a dev culture that dismisses and diminishes the importance of good design.


To add to the other responses, macOS has had excellent support for a wide variety of Accessibility features/APIs. These same APIs are a boon to GUI automation tools.

Even back in the Classic macOS days of System 7, it was relatively easy to fully automate your GUI applications via AppleScript and Apple Events to allow almost complete unit test coverage.

Note:I have been a server side CLI Linux web dev since the late 90s. While macOS is my preferred desktop, KDE Neon has been my primary GUI for the last few years. There is much I miss from macOS, but I get along with KDE pretty well


Been using it for a long time but found myself more and more using Shortcuts and HammerSpoon instead.

Maybe a few very basic things that I still have in KM are stuff like “paste as keyboard strokes”, muting my audio when stuff changes and the occasionally keyboard shortcut remap (because it syncs across my machines in contrast to the macOS native thing)

Curious what the people here use KM for. What are some of your use cases?


I mainly use it for text expansion, which I find easier to remember and type than multi-key shortcuts. That part of my brain is already full of Emacs key bindings. I switched from TextExpander to Keyboard Maestro years ago.

I have web-specific macros that basically act as cross-browser bookmarks. I have terminal-specific macros for the shell and other REPLs. I even have a macro for a VPN client that refuses to remember my username (over twenty characters, including a domain name).


I tried to use HammerSpoon to do a simple window rearrangement (roll20 browser window to 3/4 width and discord video chat to 1/4).

It takes like 10 seconds for it to do it...


I wonder why. my hammerspoon window management stuff happens almost instantly


Just a terrific application and one I look forward to paying for an upgrade to every two years or so. I looked back at my serial numbers in 1Password and they go back to version 5, so I’ve been a user for at least a decade and the app just gets better and better.


Keyboard Maestro is one of the excellent software tools that I use daily. The power to configure and customize keystrokes is a godsend. I'm not affiliated, merely a very satisfied customer for years.


Seconded. This is great software sold the old-fashioned way: pay once and upgrade when you want to.

The lovely lack of mental friction around this model is something I miss dearly, as opposed to endless subscriptions. But this is probably because I am an old guy and haven't adapted to our new reality.

As far as KM goes, it's so well done. Very complete. Great for any one off key combos you want to add, but can do a ridiculous amount more. AND it's very well documented.


Same, easily my favorite Mac software


I've been using BetterTouchTool ever since I got a Mac with a TouchBar that I wanted to make useful, and it has slowly taken over keyboard macros + gesture menus + multi-machine clipboard etc. Anybody here who has experience with both and might like to comment to compare them?


I switched from KM to BTT, I think it was because of the touchbar programming functionalities that BTT had

I think generally BTT is more powerful (although I’m sure KM has some USP), but tbh it’s quite buggy. It hangs multiple times a day for a minute or more, and the config UI has various bugs.

I’ve been thinking of switching to Hammerspoon, but I cannot really be bothered these days


They are both great, so I keep using both. There is a lot of overlap in terms of what they can do but they each have unique capabilities that the other can't do.

I don't personally know all the differences. But for instance I use BTT to program my stream deck, while I use KM for my clipboard history because the built in GUI is polished.


This is me to a tee. I use both but for different things. I’m sure I could just focus on one or the other but I use both for different things.


Keyboard Maestro is an integral part of how I use a computer. I've been using it since 2005 (v2) and it's easily among the primary reasons I can't imagine using a different OS platform. Thank you, Peter Lewis.


Also a very satisfied customer (since 2015). I’ve used this to do everything from making clunky software easier to use to automating aspects of games that I didn’t want to do manually.

Clunky software example: connect to cisco vpn each day, handling all the prompts it makes you go through.

Another is to type out what’s in my copy buffer, for websites that don’t let you paste your password in.

Gaming example was re-casting spells when they came off cooldown in Diablo 2/3.

I’ve written hundreds of macros over the years and this app has saved me a ton of time and frustration. And probably some RSI too.


I bought version 10 recently enough that I was emailed this week with a free upgrade to version 11 which I appreciated!

I mainly only use it for text expansion, but it has served me well for years.


I was actually going to make a post about software that you actually enjoy paying for and I was going to use Keyboard Maestro as one of those examples.

Truly remarkable piece of software.


I barely read the v11 upgrade email when it hit my inbox and just renewed w/o a second thought. KM + Karabiner are the first thing I install on any new instance of macos.


>Keyboard Maestro 11 is not available from the Mac App Store and probably never will be.

I appreciate the honesty here.


Aside from any business/ philosophical reasons they might have, one concrete reason for this is that the App Store prohibits apps from asking for accessibility permissions, needed for recording keystrokes, which I imagine would basically make this app impossible!


I have Moom installed from the App Store, it requires the Accessibility feature to be flipped on in Privacy and Security -> Accessibility before it'll work.


Interesting, maybe they've changed this since I last looked at it. At some point I was pretty sure that Accessibility required unsandboxing, but App Store required sandbox enabled.


You can certainly try submitting an app that requests it ¯\_(ツ)_/¯


Kinda make sense considering the functionality. IIRC Apple require all apps on the Mac App Store to enable App Sandbox.

https://developer.apple.com/documentation/security/app_sandb...


I don't blame them. I don't put my Mac software in their app store either. Because:

-High commission.

-Strong downward pressure on price (how much stuff in the Mac app store is $30+ ?).

-Can't sell upgrades.

-I don't want Apple getting between the customer and me.

-I just can't face jumping through all their arbitary hoops.


Don't you still need a developer account to sign and notarize? I just released an app outside the store and that's what I do, at least.


Yes, I still need an Apple developer account to sign and notarize my software. I'm ok with that.


So technically Apple is still between, just way way less hoops.


Not really. The customer buys from me, not Apple and I get their email address and can ask them to sign up for my newsletter. I have to sign my and notarize my software with Apple, but the customer probably isn't even aware of that,


I meant it in a way where you still need Apples "permission" to distribute the app, through the developer license and notarization. Without it you/we couldn't sign the app causing trouble for the end user, or am I wrong here?


You can distribute your Mac app without signing, but customers have to set their preferences to accept unsigned apps, which is not the default. So not advisable.

So you sort of need Apple's permission. But, as long as you are prepared to stump up the ~$100 per year and don't do anything stupid, then the certificate and notarization shouldn't be an issue. I haven't heard of any bona fide developers being refused a certificate. And I haven't had any issue with notarization (yet).


BTW I have heard of bona fide developers being kicked out of the Mac and iOS app stores for all sorts of dodgy reasons.


Most likely for the same reason that 1Password's App Store version can't read QR codes from the screen - limited permissions.


I love the palette feature, which allows me to create shortcuts exactly two keystrokes long: https://www.notesfromandy.com/2014/08/01/double-hotkeys-with...

This feature is just a sliver of all the power of Keyboard Maestro. I'm sure there are many potentially life-changing gems among the features I haven't yet explored.


Could I use this to visit a website with a painful form, and paste in values from the columns of a CSV file, row by row?


The answer is most likely yes. I have done this many times.

Some web forms make it very difficult. In which case you may have some places where you will need Keyboard Maestro to wait while you do some manual interactions. Still you can get most of the process automated


Yes. It's only limited by your creativity.


Yes this is a particularly easy use case


Everyone in the comments swems to be in love with KM. I wonder, what do you all use it for? It sounds like I’m missing out on a lot, but when I’m thinking about it, nothing in need of automation comes to mind. That is, except for opening a few common apps and window management. What am I missing?


So many things! Opening a specific location or app or whatever with one keystroke is great, but I often also use it to run automations/macros done in AppleScript or something else with just a few keystrokes.

Extremely niche and nerdy example: Years ago, when I used to do a ton of iOS screenshot galleries for app reviews (this was when I was a tech journalist), I used a modified KM script from Federico Viticci and Gabe Weatherhead that would let me select a group of screenshots, resize them as two or three side-by-side with proper spacing between and then resize for the requirements of the CMS/website I worked for with a hot-key combo. I could even have it name the file a certain way and save it to a specific folder I had setup to auto-upload images to the CMS and then copy the image link so I could use it in my Markdown workflow that I’d cobbled together to do previewing of stuff before I put the raw HTML code in said CMS. That example was the result of like several different macros/scripts that I combined into a couple of key commands, depending on if I wanted to just do the image merging/resizing or the whole upload/copy link thing.

I’m sure there could be other ways to do that, but none as seamless and intuitively as KM.

It’s just a great tool. Even if you just use it for basic text expansion, it’s great - though I tend to use other tools for that — but the automation stuff is just top notch.


I have a whole library of text snippets around various business needs or just some links / addresses I have to send often.

Something like

;elevatorpitch

Will insert an elevator pitch into the email


Don’t even know what’s inside and I know I’ll be upgrading. Such a timesaver.


This has to be one of the longest actively developed niche software products i'm aware of. I've been using it since school and now i'm a grown-up bearded man.


I've been using this for years and it's one of the most useful apps on my Mac. Highly recommended!


Easily one of the most useful and versatile Mac apps out there.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: