canido.dev
Projects/tsowell / wiremix

wiremix

A terminal audio mixer for PipeWire

Get it on GitHub
Unclaimed

Built by @tsowell on GitHub. This page was written by @iluxav from public sources, last updated for v0.11.0 (2026-06-04), and may lag behind new releases.

Maintain wiremix? Claim it
v0.11.0 / 2026-06-049 things you can do3 changes to know before upgradingFollow (Atom feed)

Adjust volumes, mute, route audio between apps and devices, and pick device ports and profiles for PipeWire from the terminal.

What you can do with it

Change and mute the volume of each playing app, recording stream and audio device.

Good to know

PipeWire only.

Since v0.2.0

Send an app's audio to a different output or take it from a different input.

Since v0.2.0

Set the default audio output or input device.

Since v0.2.0

Choose input and output ports and profiles for audio devices.

Since v0.2.0

See live audio levels for each stream and device.

Since v0.2.0

Change key bindings, colors, characters and how streams and devices are named in a config file.

Since v0.2.0

See all key bindings in a help menu inside the mixer.

Since v0.6.2

Start wiremix from a desktop application launcher.

Good to know

The desktop entry has to be installed by your package or by hand.

Since v0.8.0

Hide streams and devices from the lists with match rules on their PipeWire properties.

Since v0.10.0

Before you upgrade

Newest first
v0.11.02026-06-04

Release builds keep running after PipeWire errors instead of exiting.

Behavior changedAffects: Users who saw wiremix quit on PipeWire errors
Read the evidence
Release history 9
v0.11.02026-06-04

Choose which tabs the mixer shows and in what order.

Details

New tabs setting and -T/--tabs flag listing playback, recording, output, input and configuration in the order you want. Release builds no longer exit on PipeWire errors.

v0.11.0.

Improved: Change key bindings, colors, characters and how str…Behavior changed

Seeded by @iluxav with Claude Code (canido)

Read the evidence
v0.10.02026-03-05

Hide streams and devices you never touch from the mixer's lists.

Details

New [[filters]] blocks with PipeWire-style match rules (regex with ~, negation with !, null checks). Name overrides now take matches = [...] instead of property and value; the old form still loads. Tags no longer need a node:/device:/client: prefix.

Also: AirPods and other endpoints with media.name now get the proper names; --version no longer includes git describe information.

v0.10.0; wiremix.toml can use TOML 1.1.

Added: Hide streams and devices from the lists with match…Improved: Change key bindings, colors, characters and how str…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
v0.9.02026-01-27

Use less CPU by measuring audio levels only for the streams on screen.

Details

New lazy_capture setting and --lazy-capture flag (off by default). The default fps is now 60 instead of unlimited.

v0.9.0.

Improved: See live audio levels for each stream and device.Behavior changed

Seeded by @iluxav with Claude Code (canido)

Read the evidence
v0.8.02025-11-12

Start wiremix from your application launcher.

Details

Ships wiremix.desktop. wiremix no longer exits on the non-fatal PipeWire error "Buffer allocation failed".

v0.8.0.

Added: Start wiremix from a desktop application launcher.Now works: Change and mute the volume of each playing app, rec…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
v0.7.02025-08-14

Name streams and devices with any PipeWire property, not only a fixed list.

Details

Any PipeWire object property can be used in name templates and overrides; pw-dump shows the available ones.

v0.7.0.

Improved: Change key bindings, colors, characters and how str…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
v0.6.22025-07-14

Cap volume sliders at a level you choose so nothing gets turned up too loud.

Details

New max_volume_percent (default 150) and enforce_max_volume (default false) settings and flags; a key binding help menu on ?. Groups v0.6.0 to v0.6.2.

Also: --version shows git describe information; help text wraps to the terminal width.

v0.6.2.

Improved: Change and mute the volume of each playing app, rec…Added: See all key bindings in a help menu inside the mixe…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
v0.5.02025-06-26

Name streams by the application that plays them.

Details

Name templates can use client:application.name and client:application.process.binary, for example "Application {client:application.name} playing {node:media.name}".

v0.5.0.

Improved: Change key bindings, colors, characters and how str…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
v0.4.02025-05-18

Open wiremix straight on the tab you use most.

Details

New -v/--tab option and tab setting in wiremix.toml for the initial tab (v0.3.0). In v0.4.0 the OpenDropdown and SelectDropdown key actions became one ActivateDropdown action, bound to c and Enter.

v0.4.0; also packaged in flake.nix for Nix.

Improved: Change key bindings, colors, characters and how str…Action required / inferred: Change key bindings, colors, characters and how str…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
v0.2.02025-05-05
First release

Change the volume of each app and audio device in PipeWire from a terminal.

Details

First releases (v0.1.0 to v0.2.0). Tabs for playback, recording, output devices, input devices and configuration; arrow keys or hjkl adjust volume, m mutes, c opens a dropdown to route audio, d sets the default device. Options for config path (-c), remote (-r), fps (-f), character set (-s), theme (-t), peak meters (-p) and mouse.

Also: Shift+Tab moves to the previous tab (v0.2.0).

cargo install wiremix; needs PipeWire, and Rust, libpipewire, pkg-config and clang to build.

Added: Change and mute the volume of each playing app, rec…Added: Send an app's audio to a different output or take i…Added: Set the default audio output or input device.Added: Choose input and output ports and profiles for audi…Added: See live audio levels for each stream and device.Added: Change key bindings, colors, characters and how str…

Seeded by @iluxav with Claude Code (canido)

Read the evidence