mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	Add some more mentions that modules can not be loaded in a remote instance in PipeWire. Also mention the special internal remote name to connect to the local pw-cli instance. Fixes #2988
		
			
				
	
	
		
			195 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			195 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
pw-cli
 | 
						|
######
 | 
						|
 | 
						|
-----------------------------------
 | 
						|
The PipeWire Command Line Interface
 | 
						|
-----------------------------------
 | 
						|
 | 
						|
:Manual section: 1
 | 
						|
:Manual group: General Commands Manual
 | 
						|
 | 
						|
SYNOPSIS
 | 
						|
========
 | 
						|
 | 
						|
| **pw-cli** [*command*]
 | 
						|
 | 
						|
DESCRIPTION
 | 
						|
===========
 | 
						|
 | 
						|
Interact with a PipeWire instance.
 | 
						|
 | 
						|
When a command is given, **pw-cli**
 | 
						|
will execute the command and exit
 | 
						|
 | 
						|
When no command is given, **pw-cli**
 | 
						|
starts an interactive session with the default PipeWire instance
 | 
						|
*pipewire-0*.
 | 
						|
 | 
						|
Connections to other, remote instances can be made. The current instance
 | 
						|
name is displayed at the prompt.
 | 
						|
 | 
						|
Note that **pw-cli** also creates a local PipeWire instance. Some commands
 | 
						|
operate on the current (remote) instance and some on the local instance, such
 | 
						|
as module loading.
 | 
						|
 | 
						|
Use the 'help' command to list the available commands.
 | 
						|
 | 
						|
GENERAL COMMANDS
 | 
						|
================
 | 
						|
 | 
						|
help | h
 | 
						|
  Show a quick help on the commands available. It also lists the aliases
 | 
						|
  for many commands.
 | 
						|
 | 
						|
quit | q
 | 
						|
  Exit from **pw-cli**
 | 
						|
 | 
						|
MODULE MANAGEMENT
 | 
						|
=================
 | 
						|
 | 
						|
| 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.
 | 
						|
 | 
						|
load-module *name* [*arguments...*]
 | 
						|
  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.
 | 
						|
 | 
						|
  This command returns a module variable that can be used
 | 
						|
  to unload the module.
 | 
						|
 | 
						|
  The locally module is *not* visible in the remote instance. It is not
 | 
						|
  possible in PipeWire to load modules in a remote instance.
 | 
						|
 | 
						|
unload-module *module-var*
 | 
						|
  Unload a module, specified either by its variable.
 | 
						|
 | 
						|
OBJECT INTROSPECTION
 | 
						|
====================
 | 
						|
 | 
						|
list-objects
 | 
						|
  List the objects of the current instance.
 | 
						|
 | 
						|
  Objects are listed with their *id*, *type* and *version*.
 | 
						|
 | 
						|
info *id* | *all*
 | 
						|
  Get information about a specific object or *all* objects.
 | 
						|
 | 
						|
  Requesting info about an object will also notify you of changes.
 | 
						|
 | 
						|
WORKING WITH REMOTES
 | 
						|
====================
 | 
						|
 | 
						|
connect [*remote-name*]
 | 
						|
  Connect to a remote instance and make this the new current
 | 
						|
  instance.
 | 
						|
 | 
						|
  If no remote name is specified, a connection is made to
 | 
						|
  the default remote instance, usually *pipewire-0*.
 | 
						|
 | 
						|
  The special remote name called *internal* can be used to connect to
 | 
						|
  the local **pw-cli** PipeWire instance.
 | 
						|
 | 
						|
  This command returns a remote var that can be used to disconnect or
 | 
						|
  switch remotes.
 | 
						|
 | 
						|
disconnect [*remote-var*]
 | 
						|
  Disconnect from a *remote instance*.
 | 
						|
 | 
						|
  If no remote name is specified, the current instance is disconnected.
 | 
						|
 | 
						|
list-remotes
 | 
						|
  List all *remote instances*.
 | 
						|
 | 
						|
switch-remote [*remote-var*]
 | 
						|
  Make the specified *remote* the current instance.
 | 
						|
 | 
						|
  If no remote name is specified, the first instance is made current.
 | 
						|
 | 
						|
NODE MANAGEMENT
 | 
						|
===============
 | 
						|
 | 
						|
create-node *factory-name* [*properties...*]
 | 
						|
  Create a node from a factory in the current instance.
 | 
						|
 | 
						|
  Properties are key=value pairs separated by whitespace.
 | 
						|
 | 
						|
  This command returns a *node variable*.
 | 
						|
 | 
						|
export-node *node-id* [*remote-var*]
 | 
						|
  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.
 | 
						|
 | 
						|
DEVICE MANAGEMENT
 | 
						|
=================
 | 
						|
 | 
						|
create-device *factory-name* [*properties...*]
 | 
						|
  Create a device from a factory in the current instance.
 | 
						|
 | 
						|
  Properties are key=value pairs separated by whitespace.
 | 
						|
 | 
						|
  This command returns a *device variable*.
 | 
						|
 | 
						|
 | 
						|
LINK MANAGEMENT
 | 
						|
===============
 | 
						|
 | 
						|
create-link *node-id* *port-id* *node-id* *port-id* [*properties...*]
 | 
						|
  Create a link between 2 nodes and ports.
 | 
						|
 | 
						|
  Port *ids* can be *-1* to automatically select an available port.
 | 
						|
 | 
						|
  Properties are key=value pairs separated by whitespace.
 | 
						|
 | 
						|
  This command returns a *link variable*.
 | 
						|
 | 
						|
GLOBALS MANAGEMENT
 | 
						|
==================
 | 
						|
 | 
						|
destroy *object-id*
 | 
						|
  Destroy a global object.
 | 
						|
 | 
						|
 | 
						|
PARAMETER MANAGEMENT
 | 
						|
====================
 | 
						|
 | 
						|
enum-params *object-id* *param-id*
 | 
						|
  Enumerate params of an object.
 | 
						|
 | 
						|
  *param-id* can also be given as the param short name.
 | 
						|
 | 
						|
set-param *object-id* *param-id* *param-json*
 | 
						|
  Set param of an object.
 | 
						|
 | 
						|
  *param-id* can also be given as the param short name.
 | 
						|
 | 
						|
PERMISSION MANAGEMENT
 | 
						|
=====================
 | 
						|
 | 
						|
permissions *client-id* *object-id* *permission*
 | 
						|
  Set permissions for a client.
 | 
						|
 | 
						|
  *object-id* can be *-1* to set the default permissions.
 | 
						|
 | 
						|
get-permissions *client-id*
 | 
						|
  Get permissions of a client.
 | 
						|
 | 
						|
 | 
						|
COMMAND MANAGEMENT
 | 
						|
==================
 | 
						|
 | 
						|
send-command *object-id*
 | 
						|
  Send a command to an object.
 | 
						|
 | 
						|
AUTHORS
 | 
						|
=======
 | 
						|
 | 
						|
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
 | 
						|
 | 
						|
SEE ALSO
 | 
						|
========
 | 
						|
 | 
						|
``pipewire(1)``,
 | 
						|
``pw-mon(1)``,
 |