Stop apps from changing your microphone volume on macOS

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 โ†’

Why your mic volume keeps changing by itself

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:

AppWhat it does to your mic
Zoom"Automatically adjust microphone volume" is on by default and rewrites the system slider
DiscordAutomatic Gain Control rides the input level
Google Meet, Chrome, any WebRTC siteWebRTC AGC adjusts hardware gain where the OS allows it
Microsoft Teams, Skype, Slack huddlesAutomatic microphone level adjustment
OBS, Streamlabs, FaceTime, some driversOccasional level rewrites

macOS has no built-in setting to lock the input volume. That's the gap MicLock fills.

How MicLock locks it

1. Hard lock โ€” a device with no volume control

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

2. Watchdog โ€” snap the level back

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.

Install

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.

Commands

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

Also switch off in-app AGC

MicLock freezes the hardware gain. Apps can still compress your voice in software, which sounds like the volume moving. Turn that off too:

FAQ

Why can apps change my microphone volume on a Mac at all?

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.

Does macOS have a setting to lock the input volume?

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.

Does this reduce microphone quality?

No. The same stream passes through at the same sample rate. MicLock removes a volume control; it adds no processing.

USB mics, audio interfaces, Bluetooth headsets?

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.

Does it need microphone permission?

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.

How do I undo it?

miclock unlock for the device, miclock unwatch for the watchdog, miclock uninstall for both plus the files.