.TH "pw-cli" 1 "1.0.5" "PipeWire" \" -*- nroff -*- .ad l .nh .SH NAME pw-cli \- The PipeWire Command Line Interface .PP .SH "SYNOPSIS" .PP .PP \fBpw-cli\fP [\fIcommand\fP] .PP .SH "DESCRIPTION" .PP .PP Interact with a PipeWire instance\&. .PP When a command is given, \fBpw-cli\fP will execute the command and exit .PP When no command is given, \fBpw-cli\fP starts an interactive session with the default PipeWire instance \fIpipewire-0\fP\&. .PP Connections to other, remote instances can be made\&. The current instance name is displayed at the prompt\&. .PP Note that \fBpw-cli\fP also creates a local PipeWire instance\&. Some commands operate on the current (remote) instance and some on the local instance, such as module loading\&. .PP Use the 'help' command to list the available commands\&. .PP .SH "GENERAL COMMANDS" .PP .PP \fBhelp | h\fP .RS 4 Show a quick help on the commands available\&. It also lists the aliases for many commands\&. .RE .PP \fBquit | q\fP .RS 4 Exit from \fBpw-cli\fP .RE .PP .SH "MODULE MANAGEMENT" .PP .PP Modules are loaded and unloaded in the local instance, thus the pw-cli binary itself and can add functionality or objects to the local instance\&. It is not possible in PipeWire to load modules in another instance\&. .PP \fBload-module \fIname\fP [\fIarguments\&.\&.\&.\fP]\fP .RS 4 Load a module specified by its name and arguments in the local instance\&. For most modules it is OK to be loaded more than once\&. .PP This command returns a module variable that can be used to unload the module\&. .PP The locally module is \fInot\fP visible in the remote instance\&. It is not possible in PipeWire to load modules in a remote instance\&. .RE .PP .PP \fBunload-module \fImodule-var\fP\fP .RS 4 Unload a module, specified either by its variable\&. .RE .PP .SH "OBJECT INTROSPECTION" .PP .PP \fBlist-objects\fP .RS 4 List the objects of the current instance\&. .RE .PP Objects are listed with their \fIid\fP, \fItype\fP and \fIversion\fP\&. .PP \fBinfo \fIid\fP | \fIall\fP\fP .RS 4 Get information about a specific object or \fIall\fP objects\&. .RE .PP Requesting info about an object will also notify you of changes\&. .PP .SH "WORKING WITH REMOTES" .PP .PP \fBconnect [\fIremote-name\fP]\fP .RS 4 Connect to a remote instance and make this the new current instance\&. .PP If no remote name is specified, a connection is made to the default remote instance, usually \fIpipewire-0\fP\&. .PP The special remote name called \fIinternal\fP can be used to connect to the local \fBpw-cli\fP PipeWire instance\&. .PP This command returns a remote var that can be used to disconnect or switch remotes\&. .RE .PP .PP \fBdisconnect [\fIremote-var\fP]\fP .RS 4 Disconnect from a \fIremote instance\fP\&. .PP If no remote name is specified, the current instance is disconnected\&. .RE .PP .PP \fBlist-remotes\fP .RS 4 List all \fIremote instances\fP\&. .RE .PP \fBswitch-remote [\fIremote-var\fP]\fP .RS 4 Make the specified \fIremote\fP the current instance\&. .PP If no remote name is specified, the first instance is made current\&. .RE .PP .PP .SH "NODE MANAGEMENT" .PP .PP \fBcreate-node \fIfactory-name\fP [\fIproperties\&.\&.\&.\fP]\fP .RS 4 Create a node from a factory in the current instance\&. .PP Properties are key=value pairs separated by whitespace\&. .PP This command returns a \fInode variable\fP\&. .RE .PP .PP \fBexport-node \fInode-id\fP [\fIremote-var\fP]\fP .RS 4 Export a node from the local instance to the specified instance\&. When no instance is specified, the node will be exported to the current instance\&. .RE .PP .SH "DEVICE MANAGEMENT" .PP .PP \fBcreate-device \fIfactory-name\fP [\fIproperties\&.\&.\&.\fP]\fP .RS 4 Create a device from a factory in the current instance\&. .PP Properties are key=value pairs separated by whitespace\&. .PP This command returns a \fIdevice variable\fP\&. .RE .PP .PP .SH "LINK MANAGEMENT" .PP .PP \fBcreate-link \fInode-id\fP \fIport-id\fP \fInode-id\fP \fIport-id\fP [\fIproperties\&.\&.\&.\fP]\fP .RS 4 Create a link between 2 nodes and ports\&. .PP Port \fIids\fP can be \fI-1\fP to automatically select an available port\&. .PP Properties are key=value pairs separated by whitespace\&. .PP This command returns a \fIlink variable\fP\&. .RE .PP .PP .SH "GLOBALS MANAGEMENT" .PP .PP \fBdestroy \fIobject-id\fP\fP .RS 4 Destroy a global object\&. .RE .PP .SH "PARAMETER MANAGEMENT" .PP .PP \fBenum-params \fIobject-id\fP \fIparam-id\fP\fP .RS 4 Enumerate params of an object\&. .PP \fIparam-id\fP can also be given as the param short name\&. .RE .PP .PP \fBset-param \fIobject-id\fP \fIparam-id\fP \fIparam-json\fP\fP .RS 4 Set param of an object\&. .PP \fIparam-id\fP can also be given as the param short name\&. .RE .PP .PP .SH "PERMISSION MANAGEMENT" .PP .PP \fBpermissions \fIclient-id\fP \fIobject-id\fP \fIpermission\fP\fP .RS 4 Set permissions for a client\&. .PP \fIobject-id\fP can be \fI-1\fP to set the default permissions\&. .RE .PP .PP \fBget-permissions \fIclient-id\fP\fP .RS 4 Get permissions of a client\&. .RE .PP .SH "COMMAND MANAGEMENT" .PP .PP \fBsend-command \fIobject-id\fP\fP .RS 4 Send a command to an object\&. .RE .PP .SH "AUTHORS" .PP .PP The PipeWire Developers ; PipeWire is available from .PP .SH "SEE ALSO" .PP .PP \fBpipewire(1)\fP, \fBpw-mon(1)\fP,