Free and open source · macOS 15 or later

Per-app volume for Mac,
in the menu bar.

A slider for every app that's making noise, a live meter inside each one, and your output device one click away. Nothing sits in your audio path until you move something.

  • Version 1.0
  • Apple silicon and Intel
  • Signed and notarized
  • MIT licence
The MixBar popover, open: a volume slider and live level meter for Arc, Discord, Microsoft Teams, Music, Spotify, VLC and Podcasts, with the output device named at the top.
  • 0 kernel extensions

    No driver to install, no restart, no installer privileges.

  • 0 network calls

    There is no network code in the app. Nothing leaves your Mac.

  • 0 taps at 100%

    At default volume MixBar creates nothing in your audio path at all.

  • 45 tests, no audio hardware

    The rules are framework-free and run on a CI box with no output device.

Try it

The popover, rebuilt in the page.

Drag a slider. The bright band is the live meter, measured after your gain. The line at the bottom is what MixBar has actually put in your audio path.

MixBar

MacBook Pro Speakers

  • Musicrouted78%
  • Browserrouted100%
  • Video callrouted34%
  • Podcastsrouted0%
  • Gamerouted100%

Audio path untouchedNo taps, no aggregate device.

Features

Everything a mixer needs, in the menu bar.

One slider per app

Drag it, or click anywhere on the track to jump there. Mute with the speaker icon, and the old level comes back when you unmute.

Meters that tell the truth

The band inside each slider is the signal after your gain is applied. What you see is what is reaching your speakers. At 100% a waveform shows the app is playing: MixBar is not in its path, so there is nothing to measure.

Output, one click away

Click the device name to switch. Devices are grouped by what they are, nearest thing first: built-in, headphones, Bluetooth, AirPlay, displays, external, virtual.

Browsers can't slip out

Netflix in Arc plays through a helper process, and there is more than one. One tap spans all of an app's processes, even a tab that starts playing later, so muting the app mutes the app.

Remembered per app

Volumes are stored by bundle ID, so quitting Spotify and reopening it keeps the level you set. Turn on Open at login and they apply from the moment you sign in.

Nothing in your audio path until you ask.

At default volume MixBar creates no taps and no aggregate device. An app enters the path only once its slider moves, and leaves the moment it returns to 100% or quits. An earlier version routed everything through the mixer and caused audible crackling system-wide, even while mixing pure silence.

Layouts

Three ways to see it.

Two apps or twenty, read at a glance and closed again.

The compact layout: one line per app, name and slider on the same row.
CompactOne line per app, to see the most at once.
The comfortable layout: an icon, the app name and a full-width slider per row.
ComfortableIcon, name and a full-width slider. The default.
The mixer layout: vertical faders side by side, like a mixing desk.
MixerVertical faders side by side, like a mixing desk.

How it works

macOS has no per-app volume API. Here is the way around it.

Capture an app's audio and play it back at a different level. No kernel extension, no virtual driver.

  1. Apps
  2. Process taps
  3. Aggregate device
  4. Render callback
  5. Your speakers
  1. 01

    List the audio processes.

    Every process holding an output stream open. That is the roster.

  2. 02

    Group them by app.

    Browsers and Electron apps play through helper processes. Each is folded under the app that owns it.

  3. 03

    Tap the apps you adjusted.

    One private tap per adjusted app. It silences the app's own output while MixBar reads it.

  4. 04

    Mix, and play it back.

    One aggregate device, one render callback: apply each gain, sum, write to your speakers.

The permission

Why it asks to record audio.

Apple classifies reading another app's sound as recording, under the same umbrella as the microphone. So MixBar needs the Audio Recording permission, even though it never touches your microphone.

You do not have to take that on faith: the part that handles your audio isone file, and the app has no network code at all.

What it reads
The audio of an app whose slider you moved, for as long as it is not at 100%.
Your microphone
Never opened. The permission's name is Apple's, not a description of what happens.
Disk or network
Nothing is recorded, written to a file, or sent anywhere.
Revoking it
System Settings → Privacy & Security. MixBar keeps working as a list of apps, with the sliders doing nothing.

Questions

The ones that get asked.

How do I change the volume of one app on a Mac?

macOS has no per-app volume control of its own: the volume keys change everything at once. MixBar adds one to the menu bar. Click its icon and every app making sound is listed with its own slider and mute.

How is it different from SoundSource or Background Music?

SoundSource is the paid benchmark and does far more: EQ, effects, per-app routing. Background Music is free, but installs a virtual audio driver that stays in your audio path permanently. MixBar is free, installs no driver, and is not in the audio path at all until you move a slider.

An app is playing but it is not in the list.

It is almost always the permission: without the audio-recording grant, macOS hands MixBar silence instead of an error. Open … → Audio permission…, grant Audio Recording, and reopen the menu.

Which Macs does it run on?

Any Mac on macOS 15 or later, Apple silicon or Intel: the download is one universal app. It needs macOS 15 because it is built on Core Audio process taps, which that release made dependable.

Can it launch at login, or take a global hotkey?

It opens at login if you ask it to, from the … menu. Global hotkeys, sleep and wake handling and per-app output routing are the next things to build, and where help goes furthest.

How do I uninstall it completely?

Quit it from the … menu, then drag it out of Applications. Its settings live in com.quentinved.MixBar, and the permission can be revoked in System Settings → Privacy & Security. Quit rather than force-quit: taps registered with coreaudiod outlive a killed process.

Something is wrong. Where do I say so?

Open an issue, or use … → Report a bug… in the app, which attaches the debug log. Email works too. Say which apps had sound and which output device was selected.

Get it.

  1. Download the .dmg and drag MixBar to Applications.
  2. Open it. macOS asks once for permission to record audio.
  3. Click the slider icon in the menu bar.

Version 1.0 · macOS 15 or later · Apple silicon and Intel ·Release notes