X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/8aab644db9baa4feb5ccef4f43144313278f4691..9eb97746c123575593d8cb3709a3413c0b22482d:/man/signal-cli.1.adoc diff --git a/man/signal-cli.1.adoc b/man/signal-cli.1.adoc index 8eb0f0c2..1a30b2e0 100644 --- a/man/signal-cli.1.adoc +++ b/man/signal-cli.1.adoc @@ -1,13 +1,14 @@ ///// vim:set ts=4 sw=4 tw=82 noet: ///// + :quotes.~: = signal-cli (1) == Name -signal-cli - A commandline and dbus interface for the Signal messenger +signal-cli - A commandline interface for the Signal messenger == Synopsis @@ -19,10 +20,11 @@ signal-cli is a commandline interface for libsignal-service-java. It supports registering, verifying, sending and receiving messages. For registering you need a phone number where you can receive SMS or incoming calls. 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 this use-case, it has a dbus and a JSON-RPC interface, that can be used to send messages from other programs. 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. +The `receive` command should be regularly executed. +In daemon mode messages are continuously received. == Options @@ -35,6 +37,10 @@ Print the version and quit. *--verbose*:: Raise log level and include lib signal logs. +*--log-file* LOG_FILE:: +Write log output to the given file. +If `--verbose` is also given, the detailed logs will only be written to the log file. + *--config* CONFIG:: Set the path, where to store the config. Make sure you have full read/write access to the given directory. @@ -46,8 +52,13 @@ The phone number must include the country calling code, i.e. the number must sta 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. +For all other commands it is only optional if there is exactly one local user in the config directory. + +*--service-environment* ENVIRONMENT:: +Choose the server environment to use: + +- `live` (default) +- `staging` *--dbus*:: Make request via user dbus. @@ -56,12 +67,12 @@ Make request via user dbus. 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" +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 +- `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 @@ -72,14 +83,18 @@ Choose when to trust new identities: Register a phone number with SMS or voice verification. Use the verify command to complete the verification. +If the account is just deactivated, the register command will just reactivate account, without requiring an SMS verification. +By default the unregister command just deactivates the account, in which case it can be reactivated without sms verification if the local data is still available. +If the account was deleted (with --delete-account) it cannot be reactivated. + *-v*, *--voice*:: The verification should be done over voice, not SMS. *--captcha*:: The captcha token, required if registration failed with a captcha required error. To get the token, go to https://signalcaptchas.org/registration/generate.html -Check the developer tools for a redirect starting with signalcaptcha:// -Everything after signalcaptcha:// is the captcha token. +For the staging environment, use: https://signalcaptchas.org/staging/registration/generate.html +Check the developer tools for a redirect starting with signalcaptcha:// Everything after signalcaptcha:// is the captcha token. === verify @@ -100,8 +115,9 @@ 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. +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! @@ -144,7 +160,8 @@ Remove the registration lock pin. === link Link to an existing device, instead of registering a new number. -This shows a "sgnl://linkdevice?uuid=..." 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:: @@ -158,8 +175,7 @@ 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 such as "sgnl://linkdevice?uuid=..." (formerly "tsdevice:/?uuid=...") -Make sure to enclose it in quotation marks for shells. +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 @@ -190,17 +206,42 @@ Send a message to another user or group. RECIPIENT:: Specify the recipients’ phone number. +*--note-to-self*:: +Send the message to self without notification. + *-g* GROUP, *--group-id* GROUP:: Specify the recipient group ID in base64 encoding. *-m* MESSAGE, *--message* MESSAGE:: -Specify the message, if missing, standard input is used. +Specify the message. +Currently, signal-cli reads the message from stdin if `-m` is missing, but this will change in a future version and the explicit flag `--message-from-stdin` should be used instead. + +*--message-from-stdin*:: +Read the message from standard input. *-a* [ATTACHMENT [ATTACHMENT ...]], *--attachment* [ATTACHMENT [ATTACHMENT ...]]:: Add one or more files as attachment. -*--note-to-self*:: -Send the message to self without notification. +*--sticker* STICKER:: +Send a sticker of a locally known sticker pack (syntax: stickerPackId:stickerId). +Shouldn't be used together with `-m` as the official clients don't support this. +e.g.: `--sticker 00abac3bc18d7f599bff2325dc306d43:2` + +*--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"` + +*--quote-timestamp*:: +Specify the timestamp of a previous message with the recipient or group to add a quote to the new message. + +*--quote-author*:: +Specify the number of the author of the original message. + +*--quote-message*:: +Specify the message of the original message. + +*--quote-mention*:: +Specify the mentions of the original message (same format as `--mention`). *-e*, *--end-session*:: Clear session state and send end session message. @@ -380,15 +421,13 @@ 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. +Can be either the plain text numbers shown in the app or the bytes from the QR-code, encoded as base64. === updateProfile 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 and included -in every group. +The decryption key is sent with every outgoing messages to contacts and included in every group. *--given-name* NAME, *--name* NAME:: New (given) name. @@ -424,6 +463,16 @@ Specify the new name for this contact. Set expiration time of messages (seconds). To disable expiration set expiration time to 0. +=== removeContact + +Remove the info of a given contact + +NUMBER:: +Specify the contact phone number. + +*--forget*:: +Delete all data associated with this contact, including identity keys and sessions. + === block Block the given contacts or groups (no messages will be received). @@ -454,13 +503,13 @@ 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. +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 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 @@ -494,15 +543,34 @@ 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 `-a` account is given, all local accounts will be exported as separate dbus -objects under the same bus name. +signal-cli can run in daemon mode and provides an experimental dbus or JSON-RPC interface. +If no `-a` account is given, all local accounts will be exported as separate dbus objects under the same bus name. + +*--dbus*:: +Export DBus interface on user bus. +See signal-cli-dbus (5) for info on the dbus interface. + +*--dbus-system*:: +Export DBus interface on system bus. +See signal-cli-dbus (5) for info on the dbus interface. + +*--socket [SOCKET]*:: +Export a JSON-RPC interface on a UNIX socket (default $XDG_RUNTIME_DIR/signal-cli/socket). +See signal-cli-jsonrpc (5) for info on the JSON-RPC interface. + +*--tcp [HOST:PORT]*:: +Export a JSON-RPC interface on a TCP socket (default localhost:7583). +See signal-cli-jsonrpc (5) for info on the JSON-RPC interface. -*--system*:: -Use DBus system bus instead of user bus. *--ignore-attachments*:: Don’t download attachments of received messages. +*--no-receive-stdout*:: +Don’t print received messages to stdout. + +*--receive-mode*:: +Specify when to start receiving messages (on-start, on-connection, manual) + == Examples Register a number (with SMS verification):: @@ -515,7 +583,7 @@ Send a message to one or more recipients:: 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 -a ACCOUNT send [RECIPIENT [RECIPIENT ...]] +uname -a | signal-cli -a ACCOUNT send --message-from-stdin [RECIPIENT [RECIPIENT ...]] Create a group:: signal-cli -a ACCOUNT updateGroup -n "Group name" -m [MEMBER [MEMBER ...]] @@ -539,6 +607,7 @@ Trust new key, without having verified it. Only use this if you don't care about signal-cli -a ACCOUNT trust -a NUMBER == Exit codes + * *1*: Error is probably caused and fixable by the user * *2*: Some unexpected error * *3*: Server or IO error