Skip to content

A novel macOS application that gives you volume faders for your running applications. Turn down your company zoom call while keeping your music up. Requires MacOS 26+ and Apple Silicon because it makes my life easier.

License

Notifications You must be signed in to change notification settings

cheefbird/AppFaders

Repository files navigation

AppFaders

Platform Swift License

Per-application audio volume control for macOS via a custom HAL audio driver.

Status: Not working. Some basics are in place, including a UI. Next up: refine app detection, troubleshoot user experience.

AppFaders Desktop UI
UI is from development - Finder volume won't be included


Overview

AppFaders is a menu bar app that lets you control volume individually for each application. It works by installing a virtual audio device (HAL plug-in) that sits between apps and your output device.

┌─────────────────────┐                ┌─────────────────────┐
│                     │      XPC       │                     │
│   Host App          │◄──────────────►│   Helper Service    │
│   ─────────         │                │   ──────────────    │
│   • Menu Bar UI     │                │   • VolumeStore     │
│   • App monitoring  │                │   • XPC listener    │
│                     │                │                     │
└─────────────────────┘                └──────────┬──────────┘
                                                  │
                                                  │ XPC
                                                  ▼
                                       ┌─────────────────────┐
                                       │                     │
                                       │   HAL Driver        │
                                       │   ──────────        │
                                       │   • Virtual device  │
                                       │   • Passthrough     │
                                       │                     │
                                       └─────────────────────┘

Requirements

Requirement Details
macOS 26+ (Tahoe)
Architecture Apple Silicon (arm64)
Privileges Admin (for driver installation)

Quick Start

Build & Test

swift build
swift test

Run the App

swift build
swift run AppFaders

Install Driver & Helper

Note: Requires an Apple Developer account and valid signing certificate.

# Build, sign, and install
Scripts/install-driver.sh

# Uninstall
Scripts/uninstall-driver.sh

Try a Tart VM

# Install Tart if needed
brew install cirruslabs/cli/tart

# Clone a macOS Tahoe vanilla image (~21.7 GB)
tart clone ghcr.io/cirruslabs/macos-tahoe-vanilla:latest appfaders-test

# Build the project then boot the VM with directory mounted
swift build
tart run --dir=appfaders:~/Developer/AppFaders:ro appfaders-test

# Inside the VM (login: admin/admin), open Terminal and run:
bash "/Volumes/My Shared Files/appfaders/Scripts/vm-spike.sh"

Project Structure

Target Description
AppFaders SwiftUI menu bar app
AppFadersCore Shared library (TrackedApp, DriverBridge, AppAudioMonitor)
AppFadersHelper XPC service (LaunchDaemon) for volume state
AppFadersDriver Swift HAL driver implementation
AppFadersDriverBridge C interface for CoreAudio HAL
BundleAssembler SPM plugin for .driver bundle packaging

Development Phases

Phase Name Status
1 driver-foundation — Virtual device registration and passthrough
2 host-audio-orchestrator — App monitoring + XPC IPC
3 desktop-ui — Menu bar UI (NSPanel + SwiftUI)
4 system-delivery — Signed PKG installer + notarization 🔜
5 settings-and-hotkeys — Launch at login + global hotkeys

About

A novel macOS application that gives you volume faders for your running applications. Turn down your company zoom call while keeping your music up. Requires MacOS 26+ and Apple Silicon because it makes my life easier.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •