HeadsetControl-MacOSTray is a macOS background application that visualizes information from the headsetcontrol command line tool. It provides a convenient status bar menu to display headset battery, chatmix, and device information, and allows quick access to settings and refresh actions.
Tray
Settings
- Status bar integration for headset battery and chatmix
- Settings panel for configuration
- Refresh button to manually update headset status
- Automatic periodic updates
- Error handling for missing or misconfigured headsetcontrol binary
-
The tray menu now dynamically displays controls based on the capabilities reported by your headset. If a capability is available, a corresponding submenu or action is shown:
-
Sidetone: Choose from Off, Low, Mid, High, Max. Sets sidetone level via
headsetcontrol -s <level>. -
Lights: Toggle On/Off. Sets lights via
headsetcontrol -l <0|1>. -
Inactive Time: Choose from Off, 5, 15, 30, 45, 60, 75, 90 minutes. Sets timeout via
headsetcontrol -i <minutes>. -
Voice Prompts: Toggle On/Off. Sets voice prompts via
headsetcontrol -v <0|1>. -
Rotate to Mute: Toggle On/Off. Sets rotate-to-mute via
headsetcontrol -r <0|1>. -
Equalizer Preset: If available, shows preset names from the device; otherwise, shows four generic presets. Sets preset via
headsetcontrol -p <index>.
These menu items only appear if the headset reports the corresponding capability in its JSON output. Selecting an option will immediately apply the setting using the headsetcontrol binary.
If you like my work, please consider supporting me !

- MacOS 14 or later
- homebrew to install headsetcontrol binary
- Install headsetcontrol via Homebrew:
brew install sapd/headsetcontrol/headsetcontrol --HEAD
- Install headsetcontrol-macostray via Homebrew
brew install --cask chrislauinger77/cask/headsetcontrol-macostray
- Verify the headsetcontrol binary works in a terminal (headsetcontrol -o json)
- Check/change settings of the app when the headsetcontrol binary is not found
- You need to allow the execution of the app in MacOS security settings.
- This app
brew upgrade
- headsetcontrol
headsetcontrol is used to talk to the supported headsets over a library. So every once on a while it should be updated even when the app has no updates. The app will use the updated library after restart of the app. Additional headsets might be added as well as new features for existing ones.
brew reinstall headsetcontrol
- Clone this repository:
git clone https://github.com/yourusername/HeadsetControl-MacOSTray.git
- Open the project in Xcode and build.
- The app runs in the background and places an icon in the macOS status bar.
- Click the icon to view headset data.
- Access settings via the dialog to configure update interval, binary path, and test mode.
- Use the Refresh button in the settings panel to manually update headset status.
- Refresh button does not work: Ensure you are using the latest version. The app now observes refresh notifications and updates the status when the button is pressed.
- headsetcontrol binary not found: Check the path in settings and ensure headsetcontrol is installed.
See LICENSE for details.





