The difference is dramatic
Hear the difference.
HFP profile collapses audio quality. AutoMicLock keeps A2DP active at all times.
Bluetooth mic active. Audio downgraded to Hands-Free Profile — muffled, distorted, like a 2003 phone call.
Built-in mic active. Headphones stay in high-bandwidth A2DP mode — crystal-clear stereo, full frequency range.
The Problem
macOS automatically switches your microphone input to Bluetooth devices when they connect. Because of Bluetooth bandwidth limits, activating the headset microphone forces the connection into a low-quality “Hands-Free Profile”. This instantly ruins audio quality, making everything sound muffled and distorted like a bad phone call.
The Solution
Auto MicLock silently monitors your system audio. If macOS attempts to switch the input to your Bluetooth headset, the app instantly forces the input back to your Mac’s built-in microphone. Your Bluetooth headphones remain in high-fidelity mode (AAC/SBC) at all times.
Under the hood
How it works.
Unlike hacky scripts that run infinite loops, Auto MicLock is a 100% native macOS app written in pure Swift.
CoreAudio Event-Driven
Uses native AudioObjectAddPropertyListenerBlock to listen for hardware changes. Only wakes up when macOS tries to change the default input — 0% CPU usage on standby.
No External Dependencies
Does not rely on Automator, SwitchAudioSource, or bash loops. Directly sets the kAudioDeviceTransportTypeBuiltIn device via low-level system APIs.
SMAppService
Uses the modern macOS 13+ background service API to launch silently at login without creating messy LaunchAgents or plist files.
Better audio quality everywhere.
Maintain stable, high-fidelity sound during calls and recordings.
Works automatically with AirPods, Sony WH-1000XM, Bose QuietComfort, Beats, and any Bluetooth headset that triggers macOS auto-switch.
Frequently Asked Questions
Why does macOS switch microphones automatically?
Apple designed macOS to default to the newest connected audio device. While convenient for speakers, it’s highly problematic for Bluetooth headphones because activating their microphone degrades the output audio quality drastically due to Bluetooth profile limitations.
Why doesn’t Apple just fix this?
Apple assumes that if you connect a headset, you want to use its microphone. They haven’t provided a user-facing toggle to say “always prefer my Mac’s built-in microphone”. Auto MicLock exists to provide that missing toggle.
Does this actually improve audio quality?
Yes. By preventing your Mac from using the Bluetooth microphone, your headphones stay in the high-bandwidth A2DP profile (stereo, high bitrate). You will hear colleagues and music in full HD, while they hear you clearly through your Mac’s internal microphone.
Do I need to keep the app open?
Auto MicLock sits quietly in your macOS Menu Bar. Enable “Launch at Login” from the menu so it runs automatically in the background every time you start your Mac. You never have to think about it again.
Is it free and open source?
Yes, 100% free and open source. Built with native Swift and CoreAudio APIs — zero telemetry, no data collection, and no impact on your Mac’s performance.
Power Users
Install from terminal.
One command. Done.
curl -fsSL https://raw.githubusercontent.com/BFMIX/AutoMicLock/main/install.sh | bash