X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/e6ea5d55f8128633f8bcc8faf346754e24f671ae..9e72248e1b7c1cd37ad20c6477caf03c4e4452da:/man/signal-cli.1.adoc?ds=sidebyside diff --git a/man/signal-cli.1.adoc b/man/signal-cli.1.adoc index bd51033f..a821d2a8 100644 --- a/man/signal-cli.1.adoc +++ b/man/signal-cli.1.adoc @@ -44,6 +44,11 @@ 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. @@ -87,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. @@ -124,14 +135,14 @@ You will need the full uri enclosed in quotation marks, such as "tsdevice:/?uuid === listDevices -Show a list of connected devices. +Show a list of linked devices. === removeDevice -Remove a connected device. +Remove a linked device. Only works, if this is the master device. -*-d* DEVICEID, *--deviceId* DEVICEID:: +*-d* DEVICE_ID, *--device-id* DEVICE_ID:: Specify the device you want to remove. Use listDevices to see the deviceIds. @@ -160,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. @@ -185,6 +199,33 @@ Specify the timestamp of the message to which to react. *-r*, *--remove*:: Remove a reaction. +=== sendTyping + +Send typing message to trigger a typing indicator for the recipient. +Indicator will be shown for 15seconds unless a typing STOP message is sent first. + +RECIPIENT:: +Specify the recipients’ phone number. + +*-g* GROUP, *--group* GROUP:: +Specify the recipient group ID in base64 encoding. + +*-s*, *--stop*:: +Send a typing STOP message. + +=== 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. @@ -200,8 +241,6 @@ Don’t download attachments of received messages. === joinGroup Join a group via an invitation link. -To be able to join a v2 group the account needs to have a profile (can be created -with the `updateProfile` command) *--uri*:: The invitation link URI (starts with `https://signal.group/#`) @@ -210,8 +249,6 @@ The invitation link URI (starts with `https://signal.group/#`) Create or update a group. If the user is a pending member, this command will accept the group invitation. -To be able to join or create a v2 group the account needs to have a profile (can -be created with the `updateProfile` command) *-g* GROUP, *--group* GROUP:: Specify the recipient group ID in base64 encoding. @@ -220,12 +257,40 @@ If not specified, a new group with a new random ID is generated. *-n* NAME, *--name* NAME:: Specify the new group name. +*-d* DESCRIPTION, *--description* DESCRIPTION:: +Specify the new group description. + *-a* AVATAR, *--avatar* AVATAR:: Specify a new group avatar image file. *-m* [MEMBER [MEMBER ...]], *--member* [MEMBER [MEMBER ...]]:: Specify one or more members to add to the group. +*-r* [MEMBER [MEMBER ...]], *--remove-member* [MEMBER [MEMBER ...]]:: +Specify one or more members to remove from the group + +*--admin* [MEMBER [MEMBER ...]]:: +Specify one or more members to make a group admin + +*--remove-admin* [MEMBER [MEMBER ...]]:: +Specify one or more members to remove group admin privileges + +*--reset-link*:: +Reset group link and create new link password + +*--link* LINK_STATE:: +Set group link state: `enabled`, `enabled-with-approval`, `disabled` + +*--set-permission-add-member* PERMISSION:: +Set permission to add new group members: `every-member`, `only-admins` + +*--set-permission-edit-details* PERMISSION:: +Set permission to edit group details: `every-member`, `only-admins` + +*-e* EXPIRATION_SECONDS, *--expiration* EXPIRATION_SECONDS:: +Set expiration time of messages (seconds). +To disable expiration set expiration time to 0. + === quitGroup Send a quit group message to all group members and remove self from member list. @@ -234,6 +299,9 @@ If the user is a pending member, this command will decline the group invitation. *-g* GROUP, *--group* GROUP:: Specify the recipient group ID in base64 encoding. +*--delete*:: +Delete local group data completely after quitting group. + === listGroups Show a list of known groups and related information. @@ -242,6 +310,10 @@ In json mode this is outputted as an list of objects and is always in detailed m *-d*, *--detailed*:: Include the list of members of each group and the group invite link. +=== listContacts + +Show a list of known contacts with names. + === listIdentities List all known identity keys and their trust status, fingerprint and safety number. @@ -266,18 +338,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. + +*--given-name* NAME, *--name* NAME:: +New (given) name. + +*--family-name* FAMILY_NAME:: +New family name. + +*--about* ABOUT_TEXT:: +New profile status text. -*--name*:: -New name visible by message recipients. +*--about-emoji* EMOJI:: +New profile status emoji. -*--avatar*:: -Path to the new avatar visible by message recipients. +*--avatar* AVATAR_FILE:: +Path to the new avatar image file. *--remove-avatar*:: -Remove the avatar visible by message recipients. +Remove the avatar === updateContact @@ -291,7 +373,7 @@ Specify the contact phone number. *-n*, *--name*:: Specify the new name for this contact. -*-e*, *--expiration*:: +*-e*, *--expiration* EXPIRATION_SECONDS:: Set expiration time of messages (seconds). To disable expiration set expiration time to 0. @@ -322,9 +404,21 @@ 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). +Upload a new sticker pack, consisting of a manifest file and the sticker images. +Images must conform to the following specification: (see https://support.signal.org/hc/en-us/articles/360031836512-Stickers#sticker_reqs ) +- Static stickers in PNG or WebP format +- Animated stickers in APNG format, +- Maximum file size for a sticker file is 300KiB +- Image resolution of 512 x 512 px + The required manifest.json has the following format: [source,json] @@ -333,12 +427,14 @@ The required manifest.json has the following format: "title": "", "author": "", "cover": { // Optional cover, by default the first sticker is used as cover - "file": "", + "file": "", + "contentType": "", "emoji": "" }, "stickers": [ { - "file": "", + "file": "", + "contentType": "", "emoji": "" } ... @@ -352,6 +448,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. @@ -378,6 +476,9 @@ signal-cli -u USERNAME updateGroup -n "Group name" -m [MEMBER [MEMBER ...]] Add member to a group:: signal-cli -u USERNAME updateGroup -g GROUP_ID -m "NEW_MEMBER" +Accept a group invitation:: +signal-cli -u USERNAME updateGroup -g GROUP_ID + Leave a group:: signal-cli -u USERNAME quitGroup -g GROUP_ID @@ -390,6 +491,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*: