macOS hands the microphone to whatever you plug in or pair — AirPods, a USB headset, a virtual meeting device. This keeps the default input on your Mac's built-in mic and puts it back the moment something else grabs it. Output is left alone, so your AirPods stay your headphones.
2026-05-27T14:09:12Z input switched to "AirPods Pro" — reset to "MacBook Pro Microphone"
curl -fsSL https://raw.githubusercontent.com/julio73/fix-sound-input/main/install.sh | bashBuilds from source (needs the Xcode command-line tools — xcode-select --install),
installs to ~/.local/bin, and starts at login. Requires macOS 12+. To build from a
clone instead: git clone … && cd fix-sound-input && ./install.sh.
fix-sound-input-ctl on # pin input to the built-in mic
fix-sound-input-ctl off # stop (e.g. to use an external mic)
fix-sound-input-ctl status # running? + current input device
fix-sound-input-ctl log # tail the log
fix-sound-input-ctl uninstallA small daemon listens for changes to the Core Audio default-input device and, when
the new device isn't the built-in mic, switches it back. It runs as a LaunchAgent
(com.github.fix-sound-input) and logs to ~/Library/Logs/fix-sound-input.log. It
only reads and sets the default device — it never records audio, so it needs no
microphone permission.
swift build
swift run fix-sound-input # run in the foreground; Ctrl-C to stopMIT licensed.