Skip to content

julio73/fix-sound-input

Repository files navigation

fix-sound-input

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"

Install

curl -fsSL https://raw.githubusercontent.com/julio73/fix-sound-input/main/install.sh | bash

Builds 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.

Use

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 uninstall

How it works

A 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.

Develop

swift build
swift run fix-sound-input   # run in the foreground; Ctrl-C to stop

MIT licensed.

About

Pin the macOS default audio input to the built-in mic — stops AirPods/USB devices from hijacking your microphone.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors