Change Stream Deck profile with AppleScript

One thing that's difficult with the regular Stream Deck app is automating profile changes for events other than changing an app.

BetterTouchTool makes this much better with it's group conditions, but in some cases, you might want to trigger this with AppleScript (as part of a macro, for example).

My use case is quite obscure, I use a KM macro that detects what plugin window is open in Logic Pro (by an OCR scan, as the name doesn't show up in the window properties), and opens a Stream Deck group with controls for that plugin.

So I use this, with the group name as a variable

tell application "BetterTouchTool"
	trigger_action "{
	\"BTTPredefinedActionType\" : 341,
	\"BTTPredefinedActionName\" : \"Open Stream Deck Group with Name\",
	\"BTTOpenGroupWithName\" : \"TypeYourGroupNameHere\", 
end tell

Small Bug: The tooltip for the Open Stream Deck Group with Name refers to the Touch Bar. Also, when copying this action to the clipboard, 'OpenGroupWithName' doesn't copy.

Very interesting! If you have any feature requests let me know, I'm currently planning the next steps for the Stream Deck integration.

I'll fix the bug.


I’m thinking I could accomplish the above with the custom variables too. Then there could be buttons shared between the plug-in profiles I’m triggering.

I have so many good things to say about the StreamDeck support. Making nice icons is no longer loads of work. Long press and release triggers save loads of space. Not being limited to 'profiles' opens up a lot of possibilities.

With the above in mind, adding some of the new advanced trigger conditions to the group conditions could make some interesting possibilities, like buttons showing up when the mouse hovers over an element, for example.

The most obvious things I’ve found difficult are

  • When creating a button that reveals more buttons when held, it wasn't immediately clear how to make sure these appeared next to the button I pushed. I worked out how to do this with display order, but it took some planning to keep this working. I don't know how you'd simplify this.

  • The icons flow from top to bottom, so if I create a small group, for every button I'll have to switch over to config, and manually assign each to the bottom row, where it's is easiest to reach on a StreamDeck XL. Either an easier, visual way to change the row and column, or an option to reverse the flow order might help.

  • Small tweaks to make creation quicker (e.g. default styles, remember the last font used, remember if SF symbols was last used, since I'm always clicking the same things with each button, or duplicating another).

Sorry for the uninvited long reply. I’m a bit keen.


I'm using BTT + streamdeck in plug-in mode, and neither the applescript nor the "Open Group..." action do anything for me. Any ideas?

As for advanced triggers:
I'd love to be able to enable/disable buttons depending on wether a menubar item is enabled or disabled.