]> nmode's Git Repositories - signal-cli/blobdiff - man/signal-cli.1.adoc
Prevent NPE during migration, when profile key is null
[signal-cli] / man / signal-cli.1.adoc
index b5c221679cc63dd19810fc6ad6ee5d021338bee9..7c2e9ea601236c31e5009873034d8ee2bc5d473a 100644 (file)
@@ -21,6 +21,9 @@ For registering you need a phone number where you can receive SMS or incoming ca
 signal-cli was primarily developed to be used on servers to notify admins of important events.
 For this use-case, it has a dbus interface, that can be used to send messages from any programming language that has dbus bindings.
 
+For some functionality the Signal protocol requires that all messages have been received from the server.
+The `receive` command should be regularly executed. In daemon mode messages are continuously received.
+
 == Options
 
 *-h*, *--help*::
@@ -29,6 +32,9 @@ Show help message and quit.
 *-v*, *--version*::
 Print the version and quit.
 
+*--verbose*::
+Raise log level and include lib signal logs.
+
 *--config* CONFIG::
 Set the path, where to store the config.
 Make sure you have full read/write access to the given directory.
@@ -38,12 +44,20 @@ Make sure you have full read/write access to the given directory.
 Specify your phone number, that will be your identifier.
 The phone number must include the country calling code, i.e. the number must start with a "+" sign.
 
+This flag must not be given for the `link` command.
+It is optional for the `daemon` command.
+For all other commands it is only optional if there is exactly one local user in the
+config directory.
+
 *--dbus*::
 Make request via user dbus.
 
 *--dbus-system*::
 Make request via system dbus.
 
+*-o* OUTPUT-MODE, *--output* OUTPUT-MODE::
+Specify if you want commands to output in either "plain-text" mode or in "json". Defaults to "plain-text"
+
 == Commands
 
 === register
@@ -78,6 +92,12 @@ If this is the master device, other users can't send messages to this number any
 Use "updateAccount" to undo this.
 To remove a linked device, use "removeDevice" from the master device.
 
+*--delete-account*::
+Delete account completely from server. Cannot be undone without loss. You will
+have to be readded to each group.
+
+CAUTION: Only delete your account if you won't use this number again!
+
 === updateAccount
 
 Update the account attributes on the signal server.
@@ -97,7 +117,8 @@ Remove the registration lock pin.
 === link
 
 Link to an existing device, instead of registering a new number.
-This shows a "tsdevice:/…" URI. If you want to connect to another signal-cli instance, you can just use this URI. If you want to link to an Android/iOS device, create a QR code with the URI (e.g. with qrencode) and scan that in the Signal app.
+This shows a "tsdevice:/…" URI. If you want to connect to another signal-cli instance, you can just use this URI.
+If you want to link to an Android/iOS device, create a QR code with the URI (e.g. with qrencode) and scan that in the Signal app.
 
 *-n* NAME, *--name* NAME::
 Optionally specify a name to describe this new device.
@@ -109,7 +130,8 @@ Link another device to this device.
 Only works, if this is the master device.
 
 *--uri* URI::
-Specify the uri contained in the QR code shown by the new device. You will need the full uri enclosed in quotation marks, such as "tsdevice:/?uuid=....."
+Specify the uri contained in the QR code shown by the new device.
+You will need the full uri enclosed in quotation marks, such as "tsdevice:/?uuid=....."
 
 === listDevices
 
@@ -124,6 +146,15 @@ Only works, if this is the master device.
 Specify the device you want to remove.
 Use listDevices to see the deviceIds.
 
+=== getUserStatus
+
+Uses a list of phone numbers to determine the statuses of those users.
+Shows if they are registered on the Signal Servers or not.
+In json mode this is outputted as a list of objects.
+
+[NUMBER [NUMBER ...]]::
+One or more numbers to check.
+
 === send
 
 Send a message to another user or group.
@@ -140,6 +171,9 @@ Specify the message, if missing, standard input is used.
 *-a* [ATTACHMENT [ATTACHMENT ...]], *--attachment* [ATTACHMENT [ATTACHMENT ...]]::
 Add one or more files as attachment.
 
+*--note-to-self*::
+Send the message to self without notification.
+
 *-e*, *--endsession*::
 Clear session state and send end session message.
 
@@ -165,18 +199,30 @@ Specify the timestamp of the message to which to react.
 *-r*, *--remove*::
 Remove a reaction.
 
+=== remoteDelete
+
+Remotely delete a previously sent message.
+
+RECIPIENT::
+Specify the recipients’ phone number.
+
+*-g* GROUP, *--group* GROUP::
+Specify the recipient group ID in base64 encoding.
+
+*-t* TIMESTAMP, *--target-timestamp* TIMESTAMP::
+Specify the timestamp of the message to delete.
+
 === receive
 
 Query the server for new messages.
-New messages are printed on standardoutput and attachments are downloaded to the config directory.
+New messages are printed on standard output and attachments are downloaded to the config directory.
+In json mode this is outputted as one json object per line.
 
 *-t* TIMEOUT, *--timeout* TIMEOUT::
 Number of seconds to wait for new messages (negative values disable timeout).
 Default is 5 seconds.
 *--ignore-attachments*::
 Don’t download attachments of received messages.
-*--json*::
-Output received messages in json format, one object per line.
 
 === joinGroup
 
@@ -213,10 +259,11 @@ Specify the recipient group ID in base64 encoding.
 
 === listGroups
 
-Show a list of known groups.
+Show a list of known groups and related information.
+In json mode this is outputted as an list of objects and is always in detailed mode.
 
 *-d*, *--detailed*::
-Include the list of members of each group.
+Include the list of members of each group and the group invite link.
 
 === listIdentities
 
@@ -242,18 +289,28 @@ Specify the safety number of the key, only use this option if you have verified
 
 === updateProfile
 
-Update the name and avatar image visible by message recipients for the current users.
+Update the profile information shown to message recipients.
 The profile is stored encrypted on the Signal servers.
-The decryption key is sent with every outgoing messages to contacts.
+The decryption key is sent with every outgoing messages to contacts and included
+in every group.
 
-*--name*::
-New name visible by message recipients.
+*--given-name* NAME, *--name* NAME::
+New (given) name.
 
-*--avatar*::
-Path to the new avatar visible by message recipients.
+*--family-name* FAMILY_NAME::
+New family name.
+
+*--about* ABOUT_TEXT::
+New profile status text.
+
+*--about-emoji* EMOJI::
+New profile status emoji.
+
+*--avatar* AVATAR_FILE::
+Path to the new avatar image file.
 
 *--remove-avatar*::
-Remove the avatar visible by message recipients.
+Remove the avatar
 
 === updateContact
 
@@ -298,6 +355,12 @@ Specify the group IDs that should be unblocked in base64 encoding.
 Send a synchronization message with the local contacts list to all linked devices.
 This command should only be used if this is the master device.
 
+=== sendSyncRequest
+
+Send a synchronization request message to the master device (for group, contacts, ...).
+The master device will respond with synchronization messages with full contact and
+group lists.
+
 === uploadStickerPack
 
 Upload a new sticker pack, consisting of a manifest file and the stickers in WebP format (maximum size for a sticker file is 100KiB).
@@ -328,6 +391,8 @@ The path of the manifest.json or a zip file containing the sticker pack you wish
 === daemon
 
 signal-cli can run in daemon mode and provides an experimental dbus interface.
+If no `-u` username is given, all local users will be exported as separate dbus
+objects under the same bus name.
 
 *--system*::
 Use DBus system bus instead of user bus.
@@ -366,6 +431,12 @@ signal-cli -u USERNAME trust -v SAFETY_NUMBER NUMBER
 Trust new key, without having verified it. Only use this if you don't care about security::
 signal-cli -u USERNAME trust -a NUMBER
 
+== Exit codes
+* *1*: Error is probably caused and fixable by the user
+* *2*: Some unexpected error
+* *3*: Server or IO error
+* *4*: Sending failed due to untrusted key
+
 == Files
 
 The password and cryptographic keys are created when registering and stored in the current users home directory, the directory can be changed with *--config*: