Skip to content

Zakay/AudioProfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AudioProfiles

256-mac

macOS Audio Profile Manager

AudioProfiles automatically switches audio input/output devices based on customizable profiles and hardware presence detection.

Why This App Exists

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

What It Does

AudioProfiles is a native macOS menu bar app that reliably manages your audio devices through customizable profiles.

Features

  • 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

The Development Story

This app was built as a hobby project that served dual purposes:

  1. Solve a real problem: My daily audio device management frustrations
  2. 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.

Getting Started

  1. Clone and build the project from source
  2. Launch the app—it creates a system default profile automatically
  3. Click the menu bar icon to see your current audio setup
  4. Click "Configure" to create profiles for your different audio scenarios
  5. Set up triggers by assigning devices that should activate each profile
  6. Enjoy automatic switching as you connect/disconnect devices

Contributing

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!

License

This project is licensed under the MIT License - see the LICENSE file for details.

Screenshots

image image image

My AI Vibe Coding Experiments

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!

About

MacOS menu bar app that automatically switches audio devices based on your rules

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages