MicMute itsnateai
winget install --id=itsnateai.MicMute -e System-wide microphone mute toggle with global hotkeys, push-to-talk, deafen mode, mute lock, and tray icon. Works with Zoom, Discord, Teams, and all other apps.
winget install --id=itsnateai.MicMute -e System-wide microphone mute toggle with global hotkeys, push-to-talk, deafen mode, mute lock, and tray icon. Works with Zoom, Discord, Teams, and all other apps.
LTR — Long-Term Release · one-click self-update built in.
> Stuck on v2.1.10? The in-app Update button on that build can't reach the latest release because GitHub silently changed its asset-hosting CDN host and the older allowlist didn't know about it. One-time rescue: run winget upgrade itsnateai.MicMute or download MicMute.exe from the latest release and replace your existing copy. v2.1.11+ self-updates normally.
Global hotkey microphone mute/unmute for Windows.
A lightweight system tray utility that lets you mute and unmute your microphone from anywhere using a hotkey or tray icon click. Works at the Windows audio level — affects all apps at once (Zoom, Discord, Teams, etc.).
Win + Shift + Ctrl + A (configurable) toggles mic mute system-wide| Active (Unmuted) | Muted | Tray Menu | Settings |
|---|---|---|---|
![]() | ![]() |
Grab MicMute.exe from the latest release — single file, self-contained, no .NET runtime needed.
winget install itsnateai.MicMute
winget upgrade itsnateai.MicMute # later, to update
WinGet installs stay current automatically. The in-app Update button detects WinGet installs and points you back at winget upgrade instead of trying to overwrite the managed binary.
git clone https://github.com/itsnateai/MicMute.git
cd MicMute
# Framework-dependent (~280KB, requires .NET 8 runtime)
dotnet publish -c Release -r win-x64
# Self-contained single-file (~147MB, no runtime needed) — matches the release exe
dotnet publish -c Release --self-contained true -r win-x64 -p:PublishSingleFile=true
Output: bin/Release/net8.0-windows/win-x64/publish/MicMute.exe
Releases publish a SHA256SUMS file alongside the exe. The in-app Update button downloads it, verifies the hash, and fails closed if anything is missing or doesn't match. Unverified updates never land on disk.
Toggle (default): Press the hotkey to mute, press again to unmute. Left-click the tray for the same effect.
Push-to-Talk: Hold the hotkey to unmute. Release to re-mute. Switch via tray menu or middle-click the icon. Push-to-Talk always starts muted at launch.
Sticky PTT: In Push-to-Talk mode, left-click the tray icon to unmute and pause the hotkey. A persistent indicator stays on screen until you left-click again to re-mute. Useful for holding the mic open during a long conversation without holding a key.
Deafen: Assign a separate hotkey in Settings. Mutes both mic and speakers. Press again to restore both.
Right-click the tray icon for the full menu:
# Win, ^ Ctrl, ! Alt, + Shift)Settings are stored in MicMute.ini (auto-created next to the exe):
[General]
Hotkey=#^+a
SoundFeedback=0
Mode=toggle
OSD_Enabled=0
OSD_Duration=800
MuteLock=0
MiddleClickToggle=1
StartMuted=no
DeafenHotkey=
| Key | Default | Description |
|---|---|---|
Hotkey | #^+a | Main mute hotkey (#=Win, ^=Ctrl, !=Alt, +=Shift) |
SoundFeedback | 0 | Play tone on mute/unmute |
Mode | toggle | toggle or push-to-talk |
OSD_Enabled | 0 | Show on-screen mute indicator |
OSD_Duration | 800 | OSD display time in ms |
MuteLock | 0 | Revert external mute changes on the 15s sync tick |
MiddleClickToggle | 1 | Middle-click tray to switch modes |
StartMuted | no | no, yes, unmuted, or last |
DeafenHotkey | (empty) | Hotkey for deafen mode |
DeviceId | (empty) | Specific mic device (empty = system default) |
IconMuted / IconActive | (empty) | Custom .ico file paths |
MuteSound / UnmuteSound | (empty) | Custom .wav file paths |
MicMute uses the Windows Core Audio COM APIs (IAudioEndpointVolume) to control microphone mute state directly — no dependencies on any specific app. Global hotkeys are registered via RegisterHotKey and the tray icon is built using WinForms NotifyIcon.
A 15-second periodic sync timer detects external mute changes, device hot-plug events, and enforces Mute Lock when enabled.
| Path | Description |
|---|---|
MicMute.csproj | .NET 8 project file |
Program.cs | Entry point — single-instance enforcement |
TrayApp.cs | Main app — tray icon, hotkeys, mute logic, menus |
AudioManager.cs | Core Audio COM interop — mute, enumerate, speaker control |
Config.cs | INI config reader/writer with hotkey parsing |
OsdForm.cs | On-screen display overlay (click-through, auto-dismiss) |
SettingsDialog.cs | Settings GUI — includes inline hotkey capture |
HelpWindow.cs | Help text window |
NativeMethods.cs | Win32 P/Invoke declarations |
ShortcutHelper.cs | Windows .lnk shortcut creation for startup |
mic_on.ico / mic_off.ico | Tray icons (embedded as resources) |
This app is free and open source. If it saves you time, consider supporting continued development:
You can also build from source for free — see the build instructions above.