An Update to the Conductor Workflow

Last year I released Conductor, my Alfred workflow for working with Keyboard Maestro. It allowed you to launch Keyboard Maestro macros, get information about them, open them for editing, and even the run them with a preset delay. In this new release I’ve taken things a little further and I’m going to provide a brief overview in this post.

This new version of Conductor is version 1.2.0, and has quite a bit of change to it under the hood.

Calling Python

The first of these is the way in which the workflow is calling Python scripts. The workflow is built almost entirely on Python 3 scripts that work with the Keyboard Maestro plist file that acts as a catalogue for all of the Keyboard Maestro macro groups and macros.

Earlier this year I gave the Doctor Drafts workflow a foundational change in how Python is called. With the exception of a recent issue, it has worked well, and I have now cloned this into the way Conductor works.

Hopefully this continues to be a forgiving and useful way to call the scripts.

In addition, I also put a modified version of diagnostics feature from Doctor Drafts into Conductor - which can be useful for diagnosing Python 3 issues. It can be called using kmdiag, and produces a report that is displayed in your web browser.

Restricting Macros

After a request from Ernest Rudak, I have begun applying some restrictions to the macros that the km keyword trigger presents. This first update checks that macros are not only enabled (and in enabled groups), but also that any that are set to be available only in a specific app are available as per the app that had focus before launching the keyword entry in Alfred.

Keyboard Maestro offers quite a range of ways to restrict/unrestrict access to macros in macro groups, and these can be used in combination. As a result, it will take me a while to reconstruct the logic and test the various cases. As a result, this first foray has a limited scope, but I believe that it is the one that occurs most frequently in use by end users. I expect I will incrementally add further checks as I release updates to the workflow; I have some remaining ideas for other features, so there’s still plenty to do here in good time.

The previous ways of interacting remain, but under a new keyword trigger, km* (and #km* for the time delayed run of a macro).

Keyboard Maestro Lists

If you ever want to get access to lists of macros or groups, then kmlist might be for you. It can produce a variety of Markdown formatted lists of groups and macros. The selected list gets deposited on your clipboard and you can paste it wherever you need it.

The lists are very much delivered as is (no sorting for example), but with a bit of fiddling in any good text editor, you can soon trim, order and format the lists however you need. Markdown simply gave a good starting point and Markdown is a bit of a lingua franca these days for generating some text with simple markup.

There are lots of ways that this may be expanded in the future. One that is potentially going to be the first is producing a CSV version of macro information including trigger information - but again the flexibility of Keyboard Maestro means that this could be a little more challenging than it might first appear.


The update includes a new kmhelp trigger that presents a list of useful help features. These can also be accessed directly via other keywords, but include access to the Keyboard Maestro wiki home page, being able to trigger a populated search in the Keyboard Maestro wiki, and also a link to the brand new Conductor documentation page, which you can check out for the full details of what Conductor can now provide you.

In addition there is also an Extras link, but I will leave you to discover for yourself what that contains.

New Icon

One of the most obvious changes is that Conductor is now sporting a new icon. The previous icon was okay, but I felt looked a bit dull compared to many of the other workflows I use, so I decided to swap it out for something a bit brighter. I hope you like it.


As well as the changes to the way Python scripts are called, changes to the names of the existing scripts, and the addition of many more Python scripts than there were before, there are also many more changes in place. I have restructured existing flows, changed the colour codding, standardised a couple of things, and broken out more flows to external triggers. Overall, the changes and additions have results in a fairly broad change to the workflow.


Until this release, Conductor has not seen a lot of change, but there are still many areas to expand it into and explore, and I plan to continue to do so. It will not necessarily be quickly as I do have other projects and plans to take care of, and as anyone who reads my monthly updates over on BMAC will know, but I have a number of items on the road map, some of which I have mentioned above.

If you do have anything that would make a big difference to you, do reach out to me via Twitter, or through any of the other channels you can find to contact me; but not my work e-mail please - that’s just for the day job.

Author: Stephen Millard
Tags: | keyboard maestro | alfred |

Buy me a coffeeBuy me a coffee

Related posts that you may also like to read