pw-link(1)
π pw-link β the PipeWire Link Command π
okay bestie, so this is pw-link, from the General Commands Manual section (section 1, the "you can literally just run this" section β¨). It's the little command that lets you list, create, and destroy links between your PipeWire ports. That's it. That's the whole vibe. It's giving patchbay but make it a CLI. π
πΈ SYNOPSIS πΈ
pw-link [options] -o|-i|-l|-t [out-pattern] [in-pattern]
pw-link [options] output input
pw-link [options] -d output input
pw-link [options] -d link-id
like, pick your fighter. four whole whole entire modes, no cap. π
β¨ DESCRIPTION β¨
List, create and destroy links between PipeWire ports.
that's literally it. that's the whole thesis statement. you see a port, you link a port, you destroy a port (if you're feeling spicy). main character energy for your audio graph fr fr. π¦
π COMMON OPTIONS π
these are the ones that work everywhere, the ride-or-dies, the day-ones:
-r | --remote=NAMEβ the name of the remote instance you wanna monitor. if you don't specify it, it just connects to the default PipeWire instance. so like, if you only have one PipeWire, don't even worry about it bestie. π-h | --helpβ show help. the classic. when in doubt, ask for help, it's not embarrassing it's self-care. π--versionβ show version information. for when you need to know exactly which build you're beefin with. β
π¦ LISTING PORTS AND LINKS π¦
so, give it one of -o, -i or -l and it will list the matching (optional) input and output ports and their links. it's the window shopping of audio routing. you're just looking. no commitment. yet. π
-o | --outputβ list output ports. the talkers. the senders. the ones that go out. π£οΈ-i | --inputβ list input ports. the listeners. the receivers. the ones that take it in. π-l | --linksβ list links. the actual connections. the friendships. the relationships. π«Ά-t | --latencyβ list port latencies. for when you just need to know how much delay is in the room. β±οΈ-m | --monitorβ monitor links and ports. warning bestie:pw-linkwill not exit β it just sits there and monitors and prints new and destroyed ports or links. it's a watcher. it's camping in your terminal. Ctrl+C when you're done okay?? π₯-I | --idβ list IDs. also lists the unique link and port ids, which you're gonna want for disconnecting or for thoseport-idspecs. super handy, lowkey essential. π―-v | --verboseβ verbose port properties. also lists the port-object-path and the port-alias. this is the "tell me everything, leave nothing out" option and we respect her for it. π
π CONNECTING PORTS π
without any list option (-i, -o or -l), the given ports will be linked. you're not looking anymore, you're DOING. icon behaviour. π₯
valid port specifications are, and I need you to pay attention bestie, there are four:
port-id
as obtained with the -I option when listing ports. just a little number. a lil guy. π
node-name:port-name
as obtained when listing ports. colon goes between them, don't forget it, that's the whole plot twist. π
port-object-path
as obtained from the first alternative name for the port when listing them with the -v option. first alternative. remember which one is first. π
port-alias
as obtained from the second alternative name for the ports when listing them with the -v option. second one. yes they're different. this is the whole reason -v exists, no cap. π
extra options when linking can be given, and here they are:
-L | --lingerβ linger. will create a link that exists afterpw-linkis destroyed. and here's the tea: this is the default behaviour, unless the-moption is given. so it's the default... but monitor mode changes that. remember that. write it down. π-P | --passiveβ passive link. a passive link will keep both nodes it links inactive unless another non-passive link is activating the nodes. you can use this to link a sink to a filter and have them both suspended when nothing else is linked to either of them. it's giving "I'll wake up when someone actually needs me." nap queen energy. π΄-p | --props=PROPSβ properties as a JSON object. give extra properties when creating the link. (the manpage says "creaing", which is a typo, and I'm telling you because I love you and because the original says it like that. the option is still-p | --props=PROPS.) π§
π§ DISCONNECTING PORTS π§
when the -d option is given, an existing link between port is destroyed. rip to that link, you had a good run, thank you for your service. π
to disconnect port, a single link-id β as obtained when listing links with the -I option β or two port specifications can be given. see the connecting ports section for valid port specifications. (yes, the same four. you already know them. you're a pro now.) π
-d | --disconnectβ disconnect ports. the breakup option. mutual and consensual. π«Ά
π EXAMPLES π
everybody loves examples, here's the demo reel:
pw-link -iol
list all port and their links. (yes, all of them. it's a lot. it's fine.) β¨
pw-link -lm
list all links and monitor changes until pw-link is stopped. it will not stop on its own. it will never stop on its own. you stop it. Ctrl+C. π
pw-link paplay:output_FL alsa_output.pci-0000_00_1b.0.analog-stereo:playback_FL
link the given output port to the input port. note: the original page wraps this line, so it reads alsa_output.pci-0000_00_1b.0.analog- then stereo:playback_FL on the next line β but it's one single port name, so don't you dare put a space in it. π€
pw-link -lI
list links and their Id. π
pw-link -d 89
destroy the link with id 89. gone. reduced to atoms. bye bestie. π
β AUTHORS β
The PipeWire Developers
issues go here, they're literally asking you to file them: <https://gitlab.freedesktop.org/pipewire/pipewire/issues>
and PipeWire is available from: <https://pipewire.org> π
(no email, no individual names, just The PipeWire Developers as a collective. mysterious. iconic. slay. π)
π SEE ALSO π
go read those next, you're already in the docs folder, might as well. π
friendly reminder bestie:-m | --monitormeanspw-linkwill not exit by itself. it just keeps printing new and destroyed ports and links at you forever, and it also changes the-L | --lingerdefault. don't leave it running in a forgotten terminal and then wonder why your tmux tab is screaming. I'm looking at you. π
and that's the whole page!! you understood all of it, I'm so proud, this is your era fr fr πβ¨
pw-link(1), part of PipeWire, version 1.6.11, dated pw-link(1) β okay that last one is literally just the page name again, the footer is PipeWire 1.6.11 pw-link(1) and it's giving "signature at the bottom of a letter". anyway. that's the whole manual page, you're welcome, go link some ports. ππ¦πΈ
π¦ where this page comes from
- fedora 44: pipewire-utils 1.6.11-1.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms