///// 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 Synopsis -------- *signal-cli* [--config CONFIG] [-h | -v | -u USERNAME | --dbus | --dbus-system] command [command-options] Description ----------- 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. Options ------- *-h*, *--help*:: Show help message and quit. *-v*, *--version*:: Print the version and quit. *--config* CONFIG:: Set the path, where to store the config. (Default: $HOME/.config/signal) *-u* USERNAME, *--username* USERNAME:: Specify your phone number, that will be your identifier. *--dbus*:: Make request via user dbus. *--dbus-system*:: Make request via system dbus. Commands -------- register ~~~~~~~~ Register a phone number with SMS or voice verification. Use the verify command to complete the verification. *-v*, *--voice*:: The verification should be done over voice, not SMS. verify ~~~~~~ Verify the number using the code received via SMS or voice. VERIFICATIONCODE:: The verification code. 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. *-n* NAME, *--name* NAME:: Optionally specify a name to describe this new device. By default "cli" will be used. addDevice ~~~~~~~~~ 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. listDevices ~~~~~~~~~~~ Show a list of connected devices. removeDevice ~~~~~~~~~~~~ Remove a connected device. Only works, if this is the master device. *-d* DEVICEID, *--deviceId* DEVICEID:: Specify the device you want to remove. Use listDevices to see the deviceIds. send ~~~~ Send a message to another user or group. RECIPIENT:: Specify the recipients’ phone number. *-g* GROUP, *--group* GROUP:: Specify the recipient group ID in base64 encoding. *-m* MESSAGE, *--message* MESSAGE:: Specify the message, if missing, standard input is used. *-a* [ATTACHMENT [ATTACHMENT ...]], *--attachment* [ATTACHMENT [ATTACHMENT ...]]:: Add one or more files as attachment. *-e*, *--endsession*:: Clear session state and send end session message. receive ~~~~~~~ Query the server for new messages. New messages are printed on standardoutput and attachments are downloaded to the config directory. *-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. updateGroup ~~~~~~~~~~~ Create or update a group. *-g* GROUP, *--group* GROUP:: Specify the recipient group ID in base64 encoding. If not specified, a new group with a new random ID is generated. *-n* NAME, *--name* NAME:: Specify the new group name. *-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. quitGroup ~~~~~~~~~ Send a quit group message to all group members and remove self from member list. *-g* GROUP, *--group* GROUP:: Specify the recipient group ID in base64 encoding. listIdentities ~~~~~~~~~~~~~~ List all known identity keys and their trust status, fingerprint and safety number. *-n* NUMBER, *--number* NUMBER:: Only show identity keys for the given phone number. trust ~~~~~ Set the trust level of a given number. The first time a key for a number is seen, it is trusted by default (TOFU). If the key changes, the new key must be trusted manually. number:: Specify the phone number, for which to set the trust. *-a*, *--trust-all-known-keys*:: Trust all known keys of this user, only use this for testing. *-v* VERIFIED_FINGERPRINT, *--verified-fingerprint* VERIFIED_FINGERPRINT:: Specify the safety number or fingerprint of the key, only use this option if you have verified the fingerprint. daemon ~~~~~~ signal-cli can run in daemon mode and provides an experimental dbus interface. For dbus support you need jni/unix-java.so installed on your system (Debian: libunixsocket-java ArchLinux: libmatthew-unix-java (AUR)). *--system*:: Use DBus system bus instead of user bus. *--ignore-attachments*:: Don’t download attachments of received messages. Examples -------- Register a number (with SMS verification):: signal-cli -u USERNAME register Verify the number using the code received via SMS or voice:: signal-cli -u USERNAME 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 ...]]] Pipe the message content from another process:: uname -a | signal-cli -u USERNAME send [RECIPIENT [RECIPIENT ...]] Create a group:: 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" Leave a group:: signal-cli -u USERNAME quitGroup -g GROUP_ID Send a message to a group:: signal-cli -u USERNAME send -m "This is a message" -g GROUP_ID Trust new key, after having verified it:: signal-cli -u USERNAME trust -v FINGER_PRINT 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 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*: $HOME/.config/signal/ For legacy users, the old config directory is used as a fallback: $HOME/.config/textsecure/ Authors ------- Maintained by AsamK , who is assisted by other open source contributors. For more information about signal-cli development, see .