Helvum
A GTK4 patchbay for PipeWire that displays audio and video nodes as a visual graph and lets you connect or disconnect ports with a click.
Helvum is a graphical patchbay for the PipeWire multimedia server, written in
Rust with GTK4. It renders every active audio and video node — microphones,
speakers, applications, virtual devices — as a box in a live node graph, and
lets you wire ports together or tear links apart by clicking. As an official
part of the PipeWire project it tracks PipeWire's API closely and is the
recommended GUI for managing signal routing on modern Linux desktops.
Features
- Visual node graph — all PipeWire audio and video sources, sinks, and filters appear as labelled nodes with their ports listed
- Click-to-connect — draw a link between two ports by clicking the source port then the destination port
- Click-to-disconnect — remove an existing link by clicking it in the graph
- Real-time updates — nodes and links appear and disappear instantly as devices are plugged in, applications launch, or virtual sinks are created
- Wayland and X11 — works on both display servers with no special configuration
- GNOME HIG compliant — clean, minimal interface that fits naturally into a GNOME or any GTK-based desktop
- Official PipeWire project — maintained alongside PipeWire itself, ensuring API compatibility
Installation
Flatpak is the easiest way to get Helvum on any distribution:
flatpak install flathub org.pipewire.Helvum
Native packages are available in most distribution repositories:
# Debian / Ubuntu
apt install helvum
# Fedora
dnf install helvum
# Arch Linux
pacman -S helvum
# Nix
nix-env -iA nixpkgs.helvum
To build from source you need Rust (stable), meson, and the PipeWire
development headers:
git clone https://gitlab.freedesktop.org/pipewire/helvum
cd helvum
meson setup build
ninja -C build
sudo ninja -C build installUsage
Launch Helvum from your application menu or run:
helvum
# or via Flatpak
flatpak run org.pipewire.Helvum
Once open, the canvas shows every PipeWire node currently active on the system. Each node box lists its available input and output ports.
Connecting ports:
- Click an output port on one node — it highlights.
- Click an input port on another node — a link line is drawn between them.
Disconnecting ports: Click any existing link line in the graph to remove that connection immediately.
Typical use cases:
# Check which nodes are active before opening Helvum
pw-cli list-objects | grep -i node
# Monitor PipeWire link events in a terminal while adjusting in Helvum
pw-monHelvum vs other PipeWire patchbays
| Tool | Language | Graph UI | CLI | Notes |
|---|---|---|---|---|
| Helvum | Rust + GTK4 | ✅ | ❌ | Official PipeWire project |
| qpwgraph | C++ + Qt | ✅ | ❌ | Patchbay + session manager |
| pw-viz | JavaScript | ✅ | ❌ | Web-based, read-only |
| wpctl | C | ❌ | ✅ | WirePlumber CLI controller |
Helvum is the lightest GTK-native option and the natural choice on GNOME
desktops. For a richer session-management workflow, qpwgraph adds persistent
connection profiles on top of the same patchbay concept.