macOS Audio Profile Manager
AudioProfiles automatically switches audio input/output devices based on customizable profiles and hardware presence detection.
While macOS has some automatic audio device switching, it never gets it right. As someone who regularly switches between different audio setups. I found myself constantly having to manually change devices even though macOS was supposed to handle this automatically.
The frustration was especially acute when moving between environments. I wanted something that would ensure the right devices are always used when I plug into my home setup versus my office setup. Having an external microphone, I also wanted to make sure I always use that microphone whether I'm using my headset or speakers.
I needed a solution that would:
- Reliably detect environments and switch to the right profile when plugging into home vs. office setups
- Consistently use my external microphone regardless of whether I'm using headphones or speakers
- Remember my actual preferences for different scenarios instead of guessing wrong
- Provide predictable behavior rather than macOS's inconsistent automatic switching
AudioProfiles is a native macOS menu bar app that reliably manages your audio devices through customizable profiles.
- Automatic Profile Switching - Activates profiles when specific devices are connected
- Public/Private Modes - Separate device priorities for speakers vs. headphones scenarios
- Global Hotkeys - Keyboard shortcuts to instantly switch between profiles
- Device Priorities - Fallback lists when preferred devices aren't available
- Menu Bar Interface - Always-visible status with one-click profile switching
- Disable Auto-switching - Temporarily disable automatic changes, or use manual mode with quick profile-based setup
This app was built as a hobby project that served dual purposes:
- Solve a real problem: My daily audio device management frustrations
- Explore Vibe Coding: Learn more about AI-driven development
The entire development process was a deliberate learning experiment. I intentionally didn't write any code and instead tried to build a well-architected application purely by directing an AI developer, focusing on KISS, DRY, and SOLID principles. The goal was to see if I could create quality software by articulating requirements and architectural decisions without traditional coding knowledge—treating it as a personal exploration of what's possible with AI-driven development.
Full disclosure: Every single file in this project was generated by AI—the code, icons, this README, even the license file. I haven't read every line, so there are probably mistakes and hallucinations throughout. Use at your own risk. However, the code is open source, so you can read through it yourself or evaluate it through AI to understand what it actually does.
- Clone and build the project from source
- Launch the app—it creates a system default profile automatically
- Click the menu bar icon to see your current audio setup
- Click "Configure" to create profiles for your different audio scenarios
- Set up triggers by assigning devices that should activate each profile
- Enjoy automatic switching as you connect/disconnect devices
This project welcomes contributions! Whether it's bug reports, feature suggestions, or code improvements, feel free to create an issue or submit a PR.
Especially interested in: If you see something in the codebase that could have been architected better, or have thoughts on how to achieve better outcomes through AI-driven development, I'd love to hear about it!
This project is licensed under the MIT License - see the LICENSE file for details.
This is one of several projects I've built using this AI-driven development process. Check out the others:
- NoDoze: MacOS menu bar app that intelligently prevents sleep, with a mode that automatically disables when displays are off.
- Swish: A macOS menu‑bar window manager that lets you swish windows into place—throw, resize, and move them across multiple monitors with keys or a flick of the mouse, no title bars or edges required.
- (More to come!)
If AudioProfiles saves you time and frustration with audio device switching, consider giving it a ⭐ on GitHub!
