X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/87406e2cdb4cb65a50202792350657457801c235..53b84bad0280694a19e47d6f76620f8a140fdd15:/man/signal-cli.1.adoc diff --git a/man/signal-cli.1.adoc b/man/signal-cli.1.adoc index 8e011c90..c5b190eb 100644 --- a/man/signal-cli.1.adoc +++ b/man/signal-cli.1.adoc @@ -11,7 +11,7 @@ signal-cli - A commandline and dbus interface for the Signal messenger == Synopsis -*signal-cli* [--config CONFIG] [-h | -v | -u USERNAME | --dbus | --dbus-system] command [command-options] +*signal-cli* [--config CONFIG] [-h | -v | -a ACCOUNT | --dbus | --dbus-system] command [command-options] == Description @@ -40,7 +40,7 @@ Set the path, where to store the config. Make sure you have full read/write access to the given directory. (Default: `$XDG_DATA_HOME/signal-cli` (`$HOME/.local/share/signal-cli`)) -*-u* USERNAME, *--username* USERNAME:: +*-a* ACCOUNT, *--account* ACCOUNT:: 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. @@ -58,6 +58,13 @@ 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" +*--trust-new-identities* TRUST-MODE:: +Choose when to trust new identities: +- `on-first-use` (default): Trust the first seen identity key from new users, + changed keys must be verified manually +- `always`: Trust any new identity key without verification +- `never`: Don't trust any unknown identity key, every key must be verified manually + == Commands === register @@ -103,6 +110,26 @@ CAUTION: Only delete your account if you won't use this number again! Update the account attributes on the signal server. Can fix problems with receiving messages. +*-n* NAME, *--device-name* NAME:: +Set a new device name for the main or linked device + +=== updateConfiguration + +Update signal configs and sync them to linked devices. +This command only works on the main devices. + +*--read-receipts* {true,false}:: +Indicates if Signal should send read receipts. + +*--unidentified-delivery-indicators* {true,false}:: +Indicates if Signal should show unidentified delivery indicators. + +*--typing-indicators* {true,false}:: +Indicates if Signal should send/show typing indicators. + +*--link-previews* {true,false}:: +Indicates if Signal should generate link previews. + === setPin Set a registration lock pin, to prevent others from registering this number. @@ -117,7 +144,7 @@ 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. +This shows a "sgnl://linkdevice?uuid=..." 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:: @@ -131,7 +158,8 @@ 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=....." +You will need the full URI such as "sgnl://linkdevice?uuid=..." (formerly "tsdevice:/?uuid=...") +Make sure to enclose it in quotation marks for shells. === listDevices @@ -162,7 +190,7 @@ Send a message to another user or group. RECIPIENT:: Specify the recipients’ phone number. -*-g* GROUP, *--group* GROUP:: +*-g* GROUP, *--group-id* GROUP:: Specify the recipient group ID in base64 encoding. *-m* MESSAGE, *--message* MESSAGE:: @@ -174,9 +202,14 @@ Add one or more files as attachment. *--note-to-self*:: Send the message to self without notification. -*-e*, *--endsession*:: +*-e*, *--end-session*:: Clear session state and send end session message. +*--mention*:: +Mention another group member (syntax: start:length:recipientNumber) +In the apps the mention replaces part of the message text, which is specified by the start and length values. +e.g.: `-m "Hi X!" --mention "3:1:+123456789"` + === sendReaction Send reaction to a previously received or sent message. @@ -184,7 +217,7 @@ Send reaction to a previously received or sent message. RECIPIENT:: Specify the recipients’ phone number. -*-g* GROUP, *--group* GROUP:: +*-g* GROUP, *--group-id* GROUP:: Specify the recipient group ID in base64 encoding. *-e* EMOJI, *--emoji* EMOJI:: @@ -199,6 +232,33 @@ Specify the timestamp of the message to which to react. *-r*, *--remove*:: Remove a reaction. +=== sendReceipt + +Send a read or viewed receipt to a previously received message. + +RECIPIENT:: +Specify the sender’s phone number. + +*-t* TIMESTAMP, *--target-timestamp* TIMESTAMP:: +Specify the timestamp of the message to which to react. + +*--type* TYPE:: +Specify the receipt type, either `read` (the default) or `viewed`. + +=== 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-id* GROUP:: +Specify the recipient group ID in base64 encoding. + +*-s*, *--stop*:: +Send a typing STOP message. + === remoteDelete Remotely delete a previously sent message. @@ -206,7 +266,7 @@ Remotely delete a previously sent message. RECIPIENT:: Specify the recipients’ phone number. -*-g* GROUP, *--group* GROUP:: +*-g* GROUP, *--group-id* GROUP:: Specify the recipient group ID in base64 encoding. *-t* TIMESTAMP, *--target-timestamp* TIMESTAMP:: @@ -236,7 +296,7 @@ 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. -*-g* GROUP, *--group* GROUP:: +*-g* GROUP, *--group-id* GROUP:: Specify the recipient group ID in base64 encoding. If not specified, a new group with a new random ID is generated. @@ -273,6 +333,10 @@ 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` +*--set-permission-send-messages* PERMISSION:: +Set permission to send messages in group: `every-member`, `only-admins` +Groups where only admins can send messages are also called announcement groups + *-e* EXPIRATION_SECONDS, *--expiration* EXPIRATION_SECONDS:: Set expiration time of messages (seconds). To disable expiration set expiration time to 0. @@ -282,7 +346,7 @@ To disable expiration set expiration time to 0. Send a quit group message to all group members and remove self from member list. If the user is a pending member, this command will decline the group invitation. -*-g* GROUP, *--group* GROUP:: +*-g* GROUP, *--group-id* GROUP:: Specify the recipient group ID in base64 encoding. *--delete*:: @@ -321,6 +385,8 @@ Trust all known keys of this user, only use this for testing. *-v* VERIFIED_SAFETY_NUMBER, *--verified-safety-number* VERIFIED_SAFETY_NUMBER:: Specify the safety number of the key, only use this option if you have verified the safety number. +Can be either the plain text numbers shown in the app or the bytes from the QR-code, +encoded as base64. === updateProfile @@ -371,7 +437,7 @@ This change is only local but can be synchronized to other devices by using `sen [CONTACT [CONTACT ...]]:: Specify the phone numbers of contacts that should be blocked. -*-g* [GROUP [GROUP ...]], *--group* [GROUP [GROUP ...]]:: +*-g* [GROUP [GROUP ...]], *--group-id* [GROUP [GROUP ...]]:: Specify the group IDs that should be blocked in base64 encoding. === unblock @@ -382,7 +448,7 @@ This change is only local but can be synchronized to other devices by using `sen [CONTACT [CONTACT ...]]:: Specify the phone numbers of contacts that should be unblocked. -*-g* [GROUP [GROUP ...]], *--group* [GROUP [GROUP ...]]:: +*-g* [GROUP [GROUP ...]], *--group-id* [GROUP [GROUP ...]]:: Specify the group IDs that should be unblocked in base64 encoding. === sendContacts @@ -398,7 +464,13 @@ 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] @@ -407,12 +479,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": "" } ... @@ -426,7 +500,7 @@ 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 +If no `-a` account is given, all local accounts will be exported as separate dbus objects under the same bus name. *--system*:: @@ -437,37 +511,37 @@ Don’t download attachments of received messages. == Examples Register a number (with SMS verification):: -signal-cli -u USERNAME register +signal-cli -a ACCOUNT register Verify the number using the code received via SMS or voice:: -signal-cli -u USERNAME verify CODE +signal-cli -a ACCOUNT verify CODE Send a message to one or more recipients:: -signal-cli -u USERNAME send -m "This is a message" [RECIPIENT [RECIPIENT ...]] [-a [ATTACHMENT [ATTACHMENT ...]]] +signal-cli -a ACCOUNT send -m "This is a message" [RECIPIENT [RECIPIENT ...]] [-a [ATTACHMENT [ATTACHMENT ...]]] Pipe the message content from another process:: -uname -a | signal-cli -u USERNAME send [RECIPIENT [RECIPIENT ...]] +uname -a | signal-cli -a ACCOUNT send [RECIPIENT [RECIPIENT ...]] Create a group:: -signal-cli -u USERNAME updateGroup -n "Group name" -m [MEMBER [MEMBER ...]] +signal-cli -a ACCOUNT updateGroup -n "Group name" -m [MEMBER [MEMBER ...]] Add member to a group:: -signal-cli -u USERNAME updateGroup -g GROUP_ID -m "NEW_MEMBER" +signal-cli -a ACCOUNT updateGroup -g GROUP_ID -m "NEW_MEMBER" Accept a group invitation:: -signal-cli -u USERNAME updateGroup -g GROUP_ID +signal-cli -a ACCOUNT updateGroup -g GROUP_ID Leave a group:: -signal-cli -u USERNAME quitGroup -g GROUP_ID +signal-cli -a ACCOUNT quitGroup -g GROUP_ID Send a message to a group:: -signal-cli -u USERNAME send -m "This is a message" -g GROUP_ID +signal-cli -a ACCOUNT send -m "This is a message" -g GROUP_ID Trust new key, after having verified it:: -signal-cli -u USERNAME trust -v SAFETY_NUMBER NUMBER +signal-cli -a ACCOUNT 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 +signal-cli -a ACCOUNT trust -a NUMBER == Exit codes * *1*: Error is probably caused and fixable by the user @@ -481,12 +555,6 @@ The password and cryptographic keys are created when registering and stored in t `$XDG_DATA_HOME/signal-cli/` (`$HOME/.local/share/signal-cli/`) -For legacy users, the old config directories are used as a fallback: - - $HOME/.config/signal/ - - $HOME/.config/textsecure/ - == Authors Maintained by AsamK , who is assisted by other open source contributors.