A Stream Deck plugin that allows you to toggle mute/unmute functionality using SoundSwitch CLI.
- Toggle Mute/Unmute: One-click toggle for your microphone using SoundSwitch
- Visual Feedback: Blue icon when unmuted, red icon when muted
- Configurable Path: Set the path to your SoundSwitch.CLI.exe installation
- Modern Setup: React-based setup page with Tailwind CSS styling
- SoundSwitch: Download and install SoundSwitch from soundswitch.aaflalo.me
- Stream Deck Software: Elgato Stream Deck software v4.1 or later
- Windows 10+: This plugin is designed for Windows systems
- Build the application for source using
npm run build - Drag the "SoundSwitch Mute Toggle" action to a button
- Configure the SoundSwitch CLI path in the property inspector
- Click on the SoundSwitch Mute button in Stream Deck
- In the property inspector, enter the full path to
SoundSwitch.CLI.exe - Common installation paths:
C:\Program Files\SoundSwitch\SoundSwitch.CLI.exeC:\Program Files (x86)\SoundSwitch\SoundSwitch.CLI.exeC:\Users\[Username]\AppData\Local\Programs\SoundSwitch\SoundSwitch.CLI.exe
- Open Windows Explorer
- Navigate to where SoundSwitch is installed
- Look for
SoundSwitch.CLI.exe - Copy the full path including the filename
- Press the Stream Deck button to toggle mute/unmute
- Blue Button: Microphone is unmuted and active
- Red Button: Microphone is muted
- The button will show "MUTED" text when muted
| State | Color | Description |
|---|---|---|
| Unmuted | Blue | Microphone is active and unmuted |
| Muted | Red | Microphone is muted |
| Error | Alert | Configuration or execution error |
# Install dependencies
npm install
# Build the plugin
npm run build
# Package for distribution
npm run packagenpm run dev- Development buildnpm run build- Production buildnpm run copy-assets- Copy assets to distnpm run package- Create release package
src/
├── js/
│ ├── main.js # Plugin main entry point
│ ├── pi.js # Property inspector
│ ├── setup.js # Setup page entry
│ ├── lib/
│ │ └── streamDeck.js # Stream Deck SDK wrapper
│ └── actions/
│ ├── action.js # Base action class
│ └── mutetoggle.js # Mute toggle action
├── components/
│ └── Setup.jsx # React setup component
├── assets/ # Icons and images
├── css/ # Stylesheets
├── *.html # HTML entry points
└── manifest.json # Plugin manifest
"Configure Path" Error
- Ensure SoundSwitch is installed
- Verify the CLI path is correct
- Check that SoundSwitch.CLI.exe exists at the specified location
Button Shows "Error"
- Check that SoundSwitch is running
- Verify CLI permissions
- Ensure the path doesn't contain special characters that need escaping
Plugin Not Working
- Restart Stream Deck software
- Reinstall the plugin
- Check Windows Event Viewer for errors
Open Command Prompt and test manually:
"C:\Path\To\SoundSwitch\SoundSwitch.CLI.exe" mute -tYou should see output like:
Microfone (NVIDIA Broadcast) is now muted
The plugin parses SoundSwitch CLI output to determine mute state:
- Looks for "is now muted" or "is now unmuted" in the output
- Falls back to ANSI color code detection (red = muted, green/blue = unmuted)
- Handles colorized terminal output properly
- Uses Stream Deck SDK v2
- Supports both single actions and multi-actions
- Implements proper state management
- Provides visual and haptic feedback
MIT License - see LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
If you encounter issues:
- Check the troubleshooting section
- Verify SoundSwitch CLI works manually
- Open an issue with detailed error information