MicLock freezes your Mac's microphone input volume so Zoom, Discord, Google Meet, Teams and Chrome can't move the slider mid-call. One command. No driver, no sudo.
curl -fsSL https://raw.githubusercontent.com/w1zardz/miclock/master/install.sh | bash
miclock lock --level 80
View on GitHub โ
You set your input level in System Settings โ Sound โ Input. You join a call. Ten minutes later the slider sits at 3% and nobody can hear you โ or it's pinned at 100% and clipping.
macOS lets any app write to the input gain of the default microphone, and several do it on every call without asking:
| App | What it does to your mic |
|---|---|
| Zoom | "Automatically adjust microphone volume" is on by default and rewrites the system slider |
| Discord | Automatic Gain Control rides the input level |
| Google Meet, Chrome, any WebRTC site | WebRTC AGC adjusts hardware gain where the OS allows it |
| Microsoft Teams, Skype, Slack huddles | Automatic microphone level adjustment |
| OBS, Streamlabs, FaceTime, some drivers | Occasional level rewrites |
macOS has no built-in setting to lock the input volume. That's the gap MicLock fills.
miclock lock wraps your microphone in a private CoreAudio aggregate device and
makes it the default input. Aggregate devices expose no volume control, so the property an app
would write to simply doesn't exist. Not a policy an app can override โ there's nothing to set.
$ miclock lock --level 80
โ gain of "MacBook Pro Microphone" set to 80%
โ locked โ apps now see a device with no volume control
miclock watch installs a tiny LaunchAgent that restores your level within a second
of anything moving it. Survives reboots, costs effectively nothing.
$ miclock watch --level 80
โ watchdog running โ snaps back to 80% within 2s, starts with your Mac
Run both for belt and braces: the lock stops apps changing the gain, the watchdog fixes the level if you ever unlock or swap headsets.
curl -fsSL https://raw.githubusercontent.com/w1zardz/miclock/master/install.sh | bash
Needs the Xcode Command Line Tools (xcode-select --install) โ the installer compiles a
small Swift helper locally, so no unsigned binary is ever downloaded. Everything lives in your home
directory, nothing runs as root, and miclock uninstall reverses all of it.
miclock lock [--level N] Hard-lock the mic gain
miclock unlock Undo the lock
miclock watch [--level N] Background watchdog
miclock unwatch Stop the watchdog
miclock status What's locked and at what level
miclock devices List input devices
miclock uninstall Remove everything
MicLock freezes the hardware gain. Apps can still compress your voice in software, which sounds like the volume moving. Turn that off too:
CoreAudio exposes kAudioDevicePropertyVolumeScalar on input devices as writable to any
process holding the device. No macOS permission gates it, so any app can set your mic gain.
No โ not in System Settings, not via a supported defaults key. The aggregate device approach is the only way to make the gain genuinely unwritable without shipping a custom audio driver.
No. The same stream passes through at the same sample rate. MicLock removes a volume control; it adds no processing.
All work โ anything that appears as an input device, including a Blue Yeti, Scarlett interface or the built-in mic, on Apple Silicon (M1โM4) and Intel.
No. MicLock never opens an audio stream, only reads and writes device properties. macOS asks for nothing and MicLock has no access to your audio.
miclock unlock for the device, miclock unwatch for the watchdog,
miclock uninstall for both plus the files.