:quotes.~:
= signal-cli (1)
+:doctype: manpage
== Name
*-h*, *--help*::
Show help message and quit.
-*-v*, *--version*::
+*--version*::
Print the version and quit.
-*--verbose*::
+*-v*, *--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.
+*--scrub-log*::
+Scrub possibly sensitive information from the log, like phone numbers and UUIDs.
+
*--config* CONFIG::
Set the path, where to store the config.
Make sure you have full read/write access to the given directory.
- `always`: Trust any new identity key without verification
- `never`: Don't trust any unknown identity key, every key must be verified manually
+*--disable-send-log*::
+Disable message send log (for resending messages that recipient couldn't decrypt).
+
== Commands
=== register
*-m* MESSAGE, *--message* MESSAGE::
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.
+Can be either a file path or a data URI.
+Data URI encoded attachments must follow the RFC 2397.
+Additionally a file name can be added:
+e.g.: `data:<MIME-TYPE>;filename=<FILENAME>;base64,<BASE64 ENCODED DATA>`
*--sticker* STICKER::
Send a sticker of a locally known sticker pack (syntax: stickerPackId:stickerId).
*--preview-url*::
Specify the url for the link preview.
-The same url must also appear in the message body, otherwise the preview won't be
-displayed by the apps.
+The same url must also appear in the message body, otherwise the preview won't be displayed by the apps.
*--preview-title*::
Specify the title for the link preview (mandatory).
*--preview-image*::
Specify the image file for the link preview (optional).
+*--story-timestamp*::
+Specify the timestamp of a story to reply to.
+
+*--story-author*::
+Specify the number of the author of the story.
+
*-e*, *--end-session*::
Clear session state and send end session message.
*-r*, *--remove*::
Remove a reaction.
+*--story*::
+React to a story instead of a normal message
+
=== sendReceipt
Send a read or viewed receipt to a previously received message.
*-t* TIMEOUT, *--timeout* TIMEOUT::
Number of seconds to wait for new messages (negative values disable timeout).
Default is 5 seconds.
+
+*--max-messages*::
+Maximum number of messages to receive, before returning.
+
*--ignore-attachments*::
Don’t download attachments of received messages.
+*--ignore-stories*::
+Don’t receive story messages from the server.
+
+
*--send-read-receipts*::
Send read receipts for all incoming data messages (in addition to the default delivery receipts)
NUMBER::
Specify the contact phone number.
-*-n*, *--name*::
-Specify the new name for this contact.
+*--given-name* NAME, *--name* NAME::
+New (given) name.
+
+*--family-name* FAMILY_NAME::
+New family name.
*-e*, *--expiration* EXPIRATION_SECONDS::
Set expiration time of messages (seconds).
=== uploadStickerPack
-Upload a new sticker pack, consisting of a manifest file and the sticker images.
+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
PATH::
The path of the manifest.json or a zip file containing the sticker pack you wish to upload.
+=== getAttachment
+
+Gets the raw data for a specified attachment.
+This is done using the ID of the attachment the recipient or group ID.
+The attachment data is returned as a Base64 String.
+
+*--id* [ID]::
+The ID of the attachment as given in the attachment list of the message.
+
+*--recipient* [RECIPIENT]::
+Specify the number which sent the attachment.
+Referred to generally as recipient.
+
+*-g* [GROUP], *--group-id* [GROUP]::
+Alternatively, specify the group IDs for which to get the attachment.
+
=== daemon
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.
+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.
+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.
+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.
+Export a JSON-RPC interface on a TCP socket (default localhost:7583). +
+See **signal-cli-jsonrpc**(5) for info on the JSON-RPC interface.
+
+*--http [HOST:PORT]*::
+Expose a JSON-RPC interface as http endpoint (default localhost:8080).
+The JSON-RPC endpoint is `/api/v1/rpc`. +
+See **signal-cli-jsonrpc**(5) for info on the JSON-RPC interface.
*--ignore-attachments*::
Don’t download attachments of received messages.
+*--ignore-stories*::
+Don’t receive story messages from the server.
+
*--send-read-receipts*::
Send read receipts for all incoming data messages (in addition to the default delivery receipts)
*--receive-mode*::
Specify when to start receiving messages (on-start, on-connection, manual)
+=== submitRateLimitChallenge
+
+When running into rate limits, sometimes the limit can be lifted, by solving a CAPTCHA.
+To get the captcha token, go to https://signalcaptchas.org/challenge/generate.html
+For the staging environment, use: https://signalcaptchas.org/staging/registration/generate.html
+
+*--challenge* CHALLENGE_TOKEN::
+The challenge token from the failed send attempt.
+
+*--captcha* CAPTCHA::
+The captcha result, starting with signalcaptcha://
+
== Examples
Register a number (with SMS verification)::