Introducing the Stream Deck Plugin for Zoom

UPDATE: Please refer to the plugin page to get the latest information. 

After getting a Stream Deck earlier this year, I built a way to control my Zoom meetings with it. For one, this sent keyboard shortcuts directly to the Zoom client to toggle mute and video and had the ability to leave a meeting with the press of a (physical) button. There was a drawback: the SD buttons didn’t synchronize with the Zoom client, meaning the button could show a muted icon, while the meeting was not muted. After doing some research, I decided to solve that with a native Stream Deck Plugin for Zoom.


The plugin has the following actions available:

  • Toggle your mute status
  • Toggle your video
  • Toggle sharing; bring up the start share window, or stop sharing
  • Bring the Zoom client to the front and focus on it
  • Leave a meeting. If you’re the host, end the meeting

Currently, this Zoom plugin only works on macOS. It’s using AppleScript to detect the status of the buttons and an alternative needs to be figured out for Windows. The code is open for pull requests for anyone who would like to do the Windows part!


To install this plugin, download the com.lostdomain.zoom.sdPlugin file from GitHub and double click it to install into the Stream Deck configurator.

To install the plugin, please use the Stream Deck store by going to More Actions on the Stream Deck Software.

Before adding the actions to your Stream Deck, make sure the following shortcuts are marked as global:

  • Mute/Unmute My Audio
  • Start/Stop Video
  • Start/Stop Screen Sharing

Here’s a screenshot of how it should look:

Zoom Shortcuts

Now install the plugin by double-clicking the .streamDeckPlugin file. It’ll ask for confirmation to install it, click yes.

After installing the plugin, it will ask Accessibility permissions, which it needs to control the Zoom client.

Zoom Permissions Ask

Make sure Stream Deck is selected in the system preferences:

Zoom Permissions Config

Now you’re ready to add the Zoom actions to your Stream Deck profile of choice and start using it!

Zoom Actions

Installation Video

To get a visual view of the installation procedure, check out this video:


Share the wealth!


  1. Great stuff! I successfully downloaded, tested and it works great! I was put on to your plugin by Elgato customer support. I passed along these suggestions to them, but I thought you might appreciate them as well:

    Mute All: (Command + Up Arrow + M )
    Switch Camera: (Command + Up Arrow + N )
    Show Chat: ( Command + Up Arrow + H )
    Record on this Computer: ( Command + Up Arrow + R )
    Record to the Cloud: ( Command + Up Arrow + C )
    Show Manage Participants: ( Command + U )
    Preferences: ( Command + Comma )

    I’m sure you are just as frustrated as I am by all of Zoom’s ridiculous Key commands (the up arrows are especially odd.) I also put in a request to Elgato to allow their software to accept 3 Key Commands such as these in future updates.

    Thanks again! I use Zoom almost everyday and this will really help my workflow for Live and Virtual Events.


  2. Echoing what prev commenter Corey said! This is great, thank you so much for making this. Would also love a buttons for these actions if possible:
    – Toggle between active presenter and gallery view
    – End video spotlight/unpin video

  3. This sounds really nice. Don’t suppose there is any hope in getting something like this for Windows. I have hotkeys setup on my Elgato stream deck that do a bunch of different Zoom shortcuts, but have no way of getting the current status to keep it in sync. I have looked at the Zoom API/SDK but it is beyond my technical knowledge to build this

    • Martijn

      July 25, 2020 at 21:35

      Hi Michael, yes – someone pointed me towards a way to do it on Windows. I have an early version and wanted to see if you want to test it:

      Let me know if it works, and if you have any issues.

      • I tested this today and it does work. The stream deck updates the Mic, Video, and Screen sharing status to match Zoom, but it is very slow to act when pressing a button. It took ~2 seconds for the mic to turn on or off when pressed, a little longer for the video to react and when I pressed the Screen sharing it took probably 15-20 sec before the window opened.

        Also the delays are accumulated so it you press the mic on and then off, then video on, then mic off it could be 15 secs before it catch up.

  4. Thanks for making this, I was able to install the plugin but the step to allow the stream accessibility control never came up. And the stream is not in the list when I go into the security and privacy system preferences. I tried uninstalling and reinstalling the plugin but that didn’t help. When I try to use the zoom buttons I’ve created in the stream deck it shows a yellow danger symbol, I am assuming because it can’t communicate with zoom. (i have set the shortcuts as global). Thanks.

    • I have manually added the stream into the privacy system preference but the zoom plugin buttons on the stream deck still do nothing. I have set the shortcuts to global.

      • Hi,
        same here:
        I did not manually added stream deck in the privacy settings. I allowed it when installing it. I set the hotkeys to global, and the Leave Meeting function does work. But Mic, Video or Sharing does not.
        I have no idea why.
        Can someone help?

  5. Thanks for your great work on this. I did similar with SD’s built-in Hotkey assignable buttons but yours are sweeter. I’ve replaced the ones I made with yours and kept hotkeys for ‘chat’ (to open chat) and ‘hand up’ for raising my hand in a meeting. I wish Zoom would add hotkeys for reactions, but that’s not to be yet.

    Well done.

  6. Luca Proietti

    July 27, 2020 at 11:37

    Hi, thanks a lot for this plug-in, it’s great to have Stream Deck button synchronized with the Zoom status. I was wandering if there’s a way to change the Key combinations associated with each command though; I originally changed mine because given that I had set them as Global key command I wanted to choose some combinations not used by other programs. For example I run Cubase that I teach remotely with Zoom and the ⌘⇧A combo is already assigned to a Cubase command. I’ve noticed that your plug-in does not work if the key commands are not the default ones, so for me would be really useful is the user could change what key presses every button sends

  7. Thanks for making this! Working from home and using it a lot.
    Sometimes however, leaving the meeting doesn’t work. Upon clicking there’s a “bomp” mac os error sound and the microphone is muted, not sure why!?

    • Martijn

      September 23, 2020 at 18:30

      Did you change the shortcut to leave the meeting, by any chance? The plugin tries the default combination, and the bump sound tells me it’s doing something that doesn’t work anymore.

  8. Hello!! I love this plugin, but recently it’s quit working for me. I get the error:

    void ESDActionsGridViewModel::onKeyReleased(): Key 5 released: com.lostdomain.zoom.focus

    I’m not sure how to move forward. Any insights?

  9. HI

    Handy plug in.

    I have been trying to get Stream Deck to do a bit more though.

    Had some success with using Applescripts but not quite getting what I need.

    Wondering if anyone has done a Script to a Screen Share of the Advanced setting ‘Music of Computer sound only.

    Using this with OBS would solve a lot of problems.


  10. Because this is based on keyboard commands, I assume it only works if Zoom is in the foreground? Or is there some way it can control Zoom even if something else is foregrounded?

  11. Hi Martijn,
    First of all, thank you so much for developing this. I am testing out the windows beta you posted in an earlier comment, and was wondering if there is anything I can do about the lag in timing from when the button is pressed to when the action occurs. I would love to help with any testing you have for the windows plugin.

    Thank you!

    • Martijn

      November 8, 2020 at 16:01

      The lag is there because of the python executable..I’m switching away from that to a quicker method.

  12. This is super cool. Thank you!

    One question: for some reason, the Zoom actions do not show up in the menu when I’m within a “Multi-Action”. Only when I’m at the top level action menu.

    Any idea why that might be?


    • Martijn

      November 8, 2020 at 16:00

      Hi Nick,

      Version 1 not marked as a multi-action capable. Honestly, I didn’t know what that meant when I made it. It’ll be available in version 2, which won’t be too long.

  13. Hi Martijn,

    Super work on 2.0! It works great on Mac. On Windows, I get a bunch of errors like “The code execution cannot proceed because MSVCP140.dll was not found. Reinstalling the application may fix this problem” as well as perhaps six or seven more similar ones with different file names. I’ve trying uninstalling and reinstalling Stream Deck, and also tried some of the other solutions I’ve found online, such as reinstalling the Microsoft Visual C ++ Redistributable Package, but nothing seems to help. Any ideas? Feel free to reach out directly if needed.

    • Martijn

      November 14, 2020 at 20:54

      Thanks! I think I know why; should’ve statically compiled it. Can you try this v2.1 and see if that fixes those Windows errors?

      • Hi Martijn. Yes! This seems to work. The only button I noticed some trouble with is the Local Record Toggle. It switches correctly when you start recording, but fails to switch back when you stop recording. Only when I leave the meeting, then it correctly returns to the neutral state. (I did not try the Cloud Record Toggle)

      • Excellent work on this Martijn!

        The toggle buttons seem to work functionally, but the icon on the streamdeck doesn’t toggle if the zoom client isn’t focused when the button is pressed.

        • Martijn

          November 15, 2020 at 16:54

          Zoom doesn’t have to be in focus, but its window has to be open on the same desktop you’re working on, yes. That’s an AppleScript limitation and because Zoom doesn’t have an API or SDK that can be used for this plugin, it’s something to be aware of.

  14. Hi, I am really enjoying your plugin on my Stream Deck. Thank you for making this wonderful tool.

    FYI, I am a professional simultaneous interpreter. And these days, as others, I have a lot of zoom meetings.

    One feature I miss in your plugin is language switcher.

    Interpreters switch language setting very often during a meeting. But, the shortcut is ctrl+shift+C which is not that convenient to press every time I switch langauges.

    I am currently using hotkey switch for this feature. But, it would be very cool if I can intuitively tell on which language I am set at the moment.

    Regarding this feature, you would be able to find more information in the link:

    Once again, I sincerely appreciate for making such a wonderful plugin.

  15. Zoom DOES have a Windows SDK, and it looks like you can call audio statuses and more, and as far as I can tell it’s free if you’re interacting with basic user features.

    I’m not sure what can and can’t be done, but I’m interested in trying to figure out how to use both it and the Elgato plugin in tandem. Unfortunately, I have a VERY limited understanding of programming (I’ve only made rather basic tampermonkey/AHK scripts,) but I’m hoping maybe I can muddle through it? Either way, I’m thankful for the current windows script 🙂 Fingers crossed this can help make it better.

    • Martijn

      December 9, 2020 at 12:28

      Yep, but that SDK is made to extend Zoom, not have a simple status readout. I investigated it for the plugin; it’s a nonstarter.

  16. Christopher Heiser

    December 16, 2020 at 01:48

    Hi Martijn–great product, works a treat on my Mac and eagerly anticipating the Windows version. Is there a beta of v2 that I could try on my PC? Thanks!

    • Martijn

      December 17, 2020 at 11:54

      2.1 has been out for a few weeks now. Please use the Stream Deck / Elgato store to get it.

  17. Hi! I tried using your Plugin and installed the version 2.1 – 16.11.20. For some reason only the Leave and Focus buttons work. The toggle video, audio and share do not work. Do you have any idea, what might be the cause of that?

    Thanks for making it available.

  18. Hello,
    I‘m trying to get the Zoom Plugin to work on my german Mac.
    Already followed the installation process but sadly its not working for me.
    The only button is working fine is to EXIT the Zoom Meeting.
    Mute and Video button will not work.
    When I press the shortcut on my keyboard its working fine, but not on the SD panel.
    I deinstalled the plugin und reinstalled it, dis- and enabled the system accessibility option with no success.

    Anyone can help?
    Many thanks Tom

Comments are closed.

© 2024 Lostdomain

Theme by Anders NorénUp ↑