Quick Review of Stream Deck software from the Apple App Store

Here is a quick review of how I'm using Keyboard Maestro with the Stream Deck software from the iOS and iPadOS App Store (not the actual hardware device, just the software version of it.)

Keyboard Maestro supports Stream Deck hardware with some built-in actions. But I've never been willing to spend hundreds of dollars on one of those devices. However I noticed a while ago (six months ago?) that you can now obtain a software-only version of Stream Deck as an app for iOS, and they just added an iPadOS version also. It's quite useful and works well. (The same KM actions that support Stream Deck hardware also support the software alternative.)

The only downside is that you get it as a subscription service for about $3 per month through the Apple App Store. While I'm not a huge fan of monthly fees, it's certainly affordable if you want to try it out for a few months. If you like it, you can get the hardware version if that's your preference. And I heard someone say that there's a version of the software with a small number of buttons (8?) that you can try for no cost, not even $3. On the iPadOS version of the software, (which is included in the same monthly fee) I can create up to 64 buttons on my iPad. That's twice as many buttons as the $300 top-of-the-line hardware device, and it costs only about $3/month.

Prior to getting this software, I was using the CAPS LOCK button on my Apple keyboard as a "toggle button" for use by my KM macros. The CAPS LOCK key has a green light on it that I use to indicate that something is "on" or "off". There are a variety of things that I've used that button for:

  1. An indicator/button for turning my KM code's debug audio on/off;
  2. An indicator/button for turning my KM code's debug video (usually the Progress Bar window) on/off;
  3. An indicator/button for pausing all my macros temporarily;
  4. Other similar ideas.

But now with my Stream Deck software on iPadOS, I can have my own dedicated buttons for these purposes, all available at the same time. Currently I have ten buttons configured to turn ten things off and on.

It's really cool. The only feature that I want added is the ability to use my iPad to trigger macros when I'm not physically at home (it seems to currently require that I be within WIFI distance of my Mac which has the Stream Deck free hosting/receiving software installed.)

I'm enjoying creating useful macros to help KM users use the Stream Deck. For example, I've written a macro that loads all the images for the buttons from a folder that contains various images that you've saved, and the name of the file that you give each image is used to indicate which button receives the image and which macro is triggered by pressing the image. Maybe I'll upload that code some other day, but at this point I'm probably the only person that needs such code. And it's still experimental.

1 Like

Hi and welcome to the forum! :wave:t3:

I have the regular Stream Deck and don't think I'd like life without it very much. It's a versatile and enjoyable addition to any setup. Glad to hear you're enjoying the software version.

I'm not sure about the limitations of the Stream Deck software, but you can do this Apple's built-in Shortcuts app.

After setting up a Remote trigger in Keyboard Maestro, you can invoke it in Shortcuts with the Get contents of URL action.

Welcome to the forum!


Yes, that's true, and I think I've tested that, but Stream Deck's app allows for data to be sent from the KM Engine to the Stream Deck software, which is a key feature that I use. For example, if something is running, I use KM to set a button to green, but if it stops, I set the same button to red. Or I can even display a number on the button. I use that too.

You can do this: kmtrigger://macro=<MacroNameOrUUID>&value=<TriggerValue>

Yes, that's true, and I have done that, but there are two directions data can be sent, and Stream Deck allows data to be sent in the opposite direction: from the KM Engine to a different device. Now with v11 of KM, there's an action called Pushover which provides an outward facing communications system that also sends data from the KM Engine to other devices. By necessity, that requires a Pushover client on your other devices. After doing five minutes of security research, (it passed several tests) I decided to trust the Pushover client software, and I installed it on one of my devices. It's entirely possible that I can build something equivalent to a Stream Deck using that client. And if I can do so, it should be able to achieve what Stream Deck cannot yet achieve, which is remote access (ie, access from outside my LAN) to my KM Engine.

For remotly trigger KM Action with or not passing data, i use iCloud files.
KM is checking a iCloud folder change to trigger macro.

1 Like

When you say "KM is checking a iCloud folder change to trigger macro" you may/must know something I don't, (which is possible) because as far as I know, it's impossible to use a KM "folder trigger" on an iCloud folder. The KM documentation says it has to be a folder stored on your Mac. What I think you might be doing is polling the iCloud folders manually, looking for changes. Is that correct? There's nothing wrong with polling; I do it all the time, but you said you had a KM macro trigger that works on iCloud folders.

I hope I'm being polite; I just want to know how you do something that I thought was impossible.

That’s interesting, I don’t think I’ve seen that. I wonder if iCloud and Dropbox handle their local file storage differently because I have a lot of macros that monitor various Dropbox folders and trigger just fine when they detect changes.

It's the very first sentence in the Folder Trigger page:


But if you are using Folder triggers on iCloud folders, then I would argue that the first sentence on that page is wrong. (The same may not be true with Dropbox, because Dropbox may include software on your Mac that takes upon itself the role of being a file system, which tricks KM into thinking it's on the local Mac.)

Forgive me then if I’m not following you, but iCloud folders are on your Mac, assuming of course that you’re using iCloud Drive. Matter of fact, I know that KM can monitor iCloud Drive folders because I have a macro or two that monitor folders in my iCloud Drive folder that I’ve been using for awhile too.

In case I've said something impolite, I apologize. If I've said anything wrong, I guess I apologize for that too. I don't want friction. But when I think I'm right I have to politely disagree.

I submit to your point that iCloud folders CAN be on your Mac hard drive, but they can also NOT be there. And in some cases, which I will mention below, they CANNOT be there. It depends on certain conditions. In my case, almost NONE of my iCloud folders are on my Mac. Nearly every folder on my iCloud has a little icon indicating that I have NOT downloaded it onto my Mac yet. If I click on the icon, I have to wait an hour for the iCloud folder to download to my Mac.

If you are wondering how this can happen, there's actually a wide variety of ways it can happen. I don't want to list them all right now. But clearly they can't always be on your Mac because iCloud Drive can store up to 14 TB of data while my Mac stores only 256 GB of data. Your iCloud Drive can use all of your iCloud storage, which vastly exceeds many Mac's internal storage.

Still, I admit that it never occurred to me that perhaps iCloud Drive can also provide folder triggers just for those files which have made it onto your Mac. If you say it does, I believe you. And it makes sense. And Dropbox can do it. But I still will assert that it's unlikely that any files stored only in iCloud Drive in the cloud can trigger the folder trigger in KM. As I said, the KM documentation says the files must be on your Mac. And as I said, almost all of my iCloud Drive files are currently not downloaded, and cannot be downloaded.

In your case, it sounds like 100% of your iCloud files are also on your Mac. In my case, roughly 5% are on my Mac. I assumed that most people would be like me, but I might be wrong on that point.

No need to worry, you haven’t said anything wrong or impolite at all! What you’re saying makes sense, that if the file has not been downloaded to the local device (and therefore has only the placeholder in the folder), then it might not trigger a KM macro. I honestly never tested it, because I have always kept my cloud content on my local drive as well.

FWIW, I hardly use iCloud Drive, for the reasons stated in my comment on this post. :laughing:

Thanks. Interestingly, the idea of "notifications from the cloud" does raise the question of whether KM could access an API in macOS to implement a trigger that is triggered by the same thing that macOS uses to place those red numbers on the upper right of the application button. For example, my Mail app has the number "1,116" above it, indicating that there are 1,116 unread messages in my Inbox. It would be amazing if KM could "trigger" on any numeric change to any app. Eg, the %TriggerValue% could be the number and the %TriggerBase% could be the name of the app that is receiving a new number. The "Dock" is an app in macOS that has to receive this data, to display the numbers, so I'm guessing that the KM Engine could also access it.

If this isn't possible, it's probably possible for the KM Editor to receive the number "1" any time a new update is available to KM.

Well, sorry, i'm not sure to understand.
I just use the trigger "Folder trigger" with an specific iCloud folder and "Adds an item"...
I didn't even ask myself if there could be a difference between a local folder and an iCloud Folder. :sweat_smile:
It's just work as expected

But i just have 1 macro using that folder trigger on a iCloud folder. By the way, it's a funny macro :

  • i use Shortcuts on my iPhone to create a file in the iCloud folder when I arrive near my office in the morning.
  • On my mac, the folder trigger wake up the mac, log into my user session, launch some apps and open the last documents I was working on the day before, signin on some websites (Trello, ClickUp, ...), wait for 2 minutes, then a nice voice say me welcome and a random positive message, then play a specific (based on the week day :wink: ) playlist on Spotify. Ready to work !

I guess if it works for you then everything is 100% fine, and you don't need to understand.

In your case, "when you arrive at work" triggers your macro, but since your iPhone is very close to your work computer when you arrive, (eg, when it detects your WIFI signal) your iPhone may be using WIFI to update the local copy (the Mac copy) of your iCloud file. What I'm saying is that it may not work if your location for doing the trigger was somewhere other than where your local Mac was. But you don't have to worry about that! Since it works for you, my concern is irrelevant.