Skip to content

pantafive/fader

Repository files navigation

Fader

CI Release License: MIT

Volume control for macOS that lives in the menu bar: switch the output device with one click, connect Bluetooth headphones, and set a separate volume for every app. Site: fader.pantafive.dev.

Fader is free and open source. It sends nothing anywhere — no telemetry, no analytics, no network access at all. Audio is processed on your Mac through the system's own Core Audio process taps (an API introduced in macOS 14.4; Fader supports macOS 15+), so there is no kernel extension and no virtual audio driver to install.

Features

  • One-click switching between output devices — headphones, speakers, AirPlay — with the active one marked.
  • Bluetooth management: paired headphones connect straight from the popover, and audio routes to them automatically.
  • Per-app volume sliders and mute. An app at 100% is untouched: Fader only taps an app's audio after you adjust it, the default audio path stays bit-perfect.
  • System output volume and mute, in sync with the volume keys and Control Center.
  • Volumes persist per app across launches and reboots.

Install

brew install --cask pantafive/tap/fader

Or download the latest dmg — signed and notarized. Requires macOS 15+.

Permissions

Adjusting an app's volume uses a Core Audio process tap, which macOS gates behind the System Audio Recording permission. Fader asks for it the first time you move a per-app slider. The tapped audio is re-rendered to your output device with the gain you set and never leaves the audio pipeline. Device switching and system volume need no permissions.

Development

brew install xcodegen swiftlint swiftformat
make run

make drives local work: gen, build, test, lint, format, run. The Xcode project is generated by XcodeGen from project.yml and is not committed — edit project.yml, never the .xcodeproj. CI lints and tests every push; pushing a v* tag builds, signs, notarizes, and publishes the dmg as a GitHub release; the site redeploys on every push to main that touches site/.

Contributing

Bug reports and pull requests are welcome; for anything bigger than a fix, open an issue first. make test and make lint must pass. Commit messages follow Conventional Commits, imperative mood, English. The real-time audio callback (ProcessTap.render) runs on the HAL IO thread — no allocation, locks, Objective-C, or logging inside it; changes there get extra scrutiny. Contributions adding telemetry, analytics, or anything that phones home will be declined.

Report security issues privately via GitHub security advisories, not public issues.

License

MIT

About

Per-app volume control for macOS. Free, native, no telemetry.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors