Change Stream Deck Profile From Macro

In my case using "Trigger Apps" is the best work around. I created a bunch of apps that do nothing and have no windows. I've created macros that close the apps as soon as they launch. Then I assigned the apps to specific profiles of my Stream Deck. So for example if I wanted the keystroke "command + option + G" to open Profile 1 on my Stream Deck, I would assign that key command to launch an app which I have assigned to Profile 1. As soon as it launches it will close but not before switching to Profile 1. It works like a charm and it's pretty straight forward to setup!


I vaguely recall that if you open the Streamdeck editor and change to editing a particular profile and then close the editor the Streamdeck then has that profile for a while.

If this is true and reliable it might be the basis for some (UI Scripting) automation.

That's a brilliant workaround. You can create one app for each profile!

Cool! How did you create those empty apps?

I used Xcode which is a free developer app from Apple. It doesn't require any programming chops since you don't need to actually make a viable app. When you launch Xcode it will give you the option to build an app which is pretty much all you need. I also recommend removing any windows from the app so it doesn't interfere with your on screen workflow. That is simple to do by unticking the correlating boxes. Then press build and you're set. Also you can copy and rename your app once it's built rather than using Xcode every time you need a new app. Just be aware that the original name will sometimes show up. Hope that helps!

Use Script Editor, create a script that does nothing, save it as an application and select the checkbox that says "stay open after run handler"

You can then just copy / rename that file as many times as you like. Run it from KM, wait a second, and quit from KM. That will switch the profile


Quite cool - thank you for that tip

Nice! Thank you so much. I was trying to avoid Xcode since it requires lots of space. Script Editor method is working now but I have two questions. I created an empty app but I get a window saying "This script contains uncompiled changes and cannot be run. (-2700)". How do you fix that any ideas?

Second question is do you turn off the default profile option in Stream Deck? Because if it is on and if you change profile using this method, once the app quits it will go back to the default profile which is helpful in other situations but not in this scenario.

Okay, I've solved the first problem by putting "hello" inside the script editor =)

1 Like

Yes, sorry I forgot to mention, I absolutely turn off the default profile, I now exclusively use KM to manage my profiles. If I want 'default' profile behavior, but want to behave in a very customized way, I can do that with KM (set timeouts on profiles, etc...). None of this can be done if you use Streamdeck to manage your profiles.

1 Like

I am stuck here:

How can i click a specific item? Typing the first letter works, but if the name of the item appears multiple times it fails. For example, I have three Stream Decks. Two of them has a profile called "Default Profile".


Lots of workarounds, any update @Timac ? :blush:. I've noticed couple new versions recently... really looking forward to an API for this.

That's definitively on our todo list but we have no ETA yet.


hello, I know it's not the best place but: do you know how to create those "Trigger Apps" on Windows?

Welcome @artwo... so, I don't, but I'm sure there are a couple windows gurus on the forum here somewhere. You might try streamdeck's reddit

would love this too! Just got my hands on a streamdeck

Hi @Timac. Any update on profile switch triggering?

I just bought a nObcontrol primarily for use with Logic Pro, and I've gone down the rabbithole of trying to sync it, to some extent, with Stream Deck, to display plugin parameters.

For anyone interested in this, I'm using @johns' suggestion of triggering profile changes with blank apps. The app is opened according to the result of an OCR scan of the current plugin window (to get the plugin name), so I press one button on the Stream Deck and it loads the appropriate profile for whichever plugin GUI is open. It works very well and I've automated the app and profile creation too, but a native solution would open up a lot more freedom.

As an aside, this also means I have a lot of profiles, so some kind of subfolder system would be very handy!

@noisneil I’ve left Elgato last month so I don't know the future Stream Deck roadmap. To get more info in the future, I would recommend you to contact the Elgato support team.

1 Like

@ncbasic's solution is brilliant, and I've got it working well.

One change I've made is to make the "trigger apps" self-terminate. That way you don't need macros to hunt down each one.

on run
    delay 1
end run

I made this macro using applescript to switch profiles. Still i would like a better solution build in by Elgato but it does work here.

Stream Deck Profile Switcher.kmmacros (5.1 KB)