]> nmode's Git Repositories - signal-cli/blob - man/signal-cli.1.txt
Bump version
[signal-cli] / man / signal-cli.1.txt
1 /////
2 vim:set ts=4 sw=4 tw=82 noet:
3 /////
4 :quotes.~:
5
6 signal-cli (1)
7 ============
8
9 Name
10 ----
11 signal-cli - A commandline and dbus interface for the Signal messenger
12
13 Synopsis
14 --------
15 *signal-cli* [--config CONFIG] [-h | -v | -u USERNAME | --dbus | --dbus-system] command [command-options]
16
17 Description
18 -----------
19
20 signal-cli is a commandline interface for libsignal-service-java. It supports
21 registering, verifying, sending and receiving messages. For registering you need a
22 phone number where you can receive SMS or incoming calls.
23 signal-cli was primarily developed to be used on servers to notify admins of
24 important events. For this use-case, it has a dbus interface, that can be used to
25 send messages from any programming language that has dbus bindings.
26
27 Options
28 -------
29
30 *-h*, *--help*::
31 Show help message and quit.
32
33 *-v*, *--version*::
34 Print the version and quit.
35
36 *--config* CONFIG::
37 Set the path, where to store the config.
38 (Default: $HOME/.config/signal)
39
40 *-u* USERNAME, *--username* USERNAME::
41 Specify your phone number, that will be your identifier.
42
43 *--dbus*::
44 Make request via user dbus.
45
46 *--dbus-system*::
47 Make request via system dbus.
48
49 Commands
50 --------
51
52 register
53 ~~~~~~~~
54 Register a phone number with SMS or voice verification. Use the verify command to
55 complete the verification.
56
57 *-v*, *--voice*::
58 The verification should be done over voice, not SMS.
59
60 verify
61 ~~~~~~
62 Verify the number using the code received via SMS or voice.
63
64 VERIFICATIONCODE::
65 The verification code.
66
67 link
68 ~~~~
69 Link to an existing device, instead of registering a new number. This shows a
70 "tsdevice:/…" URI. If you want to connect to another signal-cli instance, you can
71 just use this URI. If you want to link to an Android/iOS device, create a QR code
72 with the URI (e.g. with qrencode) and scan that in the Signal app.
73
74 *-n* NAME, *--name* NAME::
75 Optionally specify a name to describe this new device. By default "cli" will
76 be used.
77
78 addDevice
79 ~~~~~~~~~
80 Link another device to this device. Only works, if this is the master device.
81
82 *--uri* URI::
83 Specify the uri contained in the QR code shown by the new device.
84
85 listDevices
86 ~~~~~~~~~~~
87 Show a list of connected devices.
88
89 removeDevice
90 ~~~~~~~~~~~~
91 Remove a connected device. Only works, if this is the master device.
92
93 *-d* DEVICEID, *--deviceId* DEVICEID::
94 Specify the device you want to remove. Use listDevices to see the deviceIds.
95
96 send
97 ~~~~
98 Send a message to another user or group.
99
100 RECIPIENT::
101 Specify the recipients’ phone number.
102
103 *-g* GROUP, *--group* GROUP::
104 Specify the recipient group ID in base64 encoding.
105
106 *-m* MESSAGE, *--message* MESSAGE::
107 Specify the message, if missing, standard input is used.
108
109 *-a* [ATTACHMENT [ATTACHMENT ...]], *--attachment* [ATTACHMENT [ATTACHMENT ...]]::
110 Add one or more files as attachment.
111
112 *-e*, *--endsession*::
113 Clear session state and send end session message.
114
115 receive
116 ~~~~~~~
117 Query the server for new messages. New messages are printed on standardoutput and
118 attachments are downloaded to the config directory.
119
120 *-t* TIMEOUT, *--timeout* TIMEOUT::
121 Number of seconds to wait for new messages (negative values disable timeout).
122 Default is 5 seconds.
123
124 updateGroup
125 ~~~~~~~~~~~
126 Create or update a group.
127
128 *-g* GROUP, *--group* GROUP::
129 Specify the recipient group ID in base64 encoding. If not specified, a new
130 group with a new random ID is generated.
131
132 *-n* NAME, *--name* NAME::
133 Specify the new group name.
134
135 *-a* AVATAR, *--avatar* AVATAR::
136 Specify a new group avatar image file.
137
138 *-m* [MEMBER [MEMBER ...]], *--member* [MEMBER [MEMBER ...]]::
139 Specify one or more members to add to the group.
140
141 quitGroup
142 ~~~~~~~~~
143 Send a quit group message to all group members and remove self from member list.
144
145 *-g* GROUP, *--group* GROUP::
146 Specify the recipient group ID in base64 encoding.
147
148
149 listIdentities
150 ~~~~~~~~~~~~~~
151 List all known identity keys and their trust status, fingerprint and safety
152 number.
153
154 *-n* NUMBER, *--number* NUMBER::
155 Only show identity keys for the given phone number.
156
157 trust
158 ~~~~~
159 Set the trust level of a given number. The first time a key for a number is seen,
160 it is trusted by default (TOFU). If the key changes, the new key must be trusted
161 manually.
162
163 number::
164 Specify the phone number, for which to set the trust.
165
166 *-a*, *--trust-all-known-keys*::
167 Trust all known keys of this user, only use this for testing.
168
169 *-v* VERIFIED_FINGERPRINT, *--verified-fingerprint* VERIFIED_FINGERPRINT::
170 Specify the safety number or fingerprint of the key, only use this option if you have verified
171 the fingerprint.
172
173
174 daemon
175 ~~~~~~
176 signal-cli can run in daemon mode and provides an experimental dbus interface. For
177 dbus support you need jni/unix-java.so installed on your system (Debian:
178 libunixsocket-java ArchLinux: libmatthew-unix-java (AUR)).
179
180 *--system*::
181 Use DBus system bus instead of user bus.
182
183
184 Examples
185 --------
186
187 Register a number (with SMS verification)::
188 signal-cli -u USERNAME register
189
190 Verify the number using the code received via SMS or voice::
191 signal-cli -u USERNAME verify CODE
192
193 Send a message to one or more recipients::
194 signal-cli -u USERNAME send -m "This is a message" [RECIPIENT [RECIPIENT ...]] [-a [ATTACHMENT [ATTACHMENT ...]]]
195
196 Pipe the message content from another process::
197 uname -a | signal-cli -u USERNAME send [RECIPIENT [RECIPIENT ...]]
198
199 Create a group::
200 signal-cli -u USERNAME updateGroup -n "Group name" -m [MEMBER [MEMBER ...]]
201
202 Add member to a group::
203 signal-cli -u USERNAME updateGroup -g GROUP_ID -m "NEW_MEMBER"
204
205 Leave a group::
206 signal-cli -u USERNAME quitGroup -g GROUP_ID
207
208 Send a message to a group::
209 signal-cli -u USERNAME send -m "This is a message" -g GROUP_ID
210
211 Trust new key, after having verified it::
212 signal-cli -u USERNAME trust -v FINGER_PRINT NUMBER
213
214 Trust new key, without having verified it. Only use this if you don't care about security::
215 signal-cli -u USERNAME trust -a NUMBER
216
217 Files
218 -----
219 The password and cryptographic keys are created when registering and stored in the
220 current users home directory, the directory can be changed with *--config*:
221
222 $HOME/.config/signal/
223
224 For legacy users, the old config directory is used as a fallback:
225
226 $HOME/.config/textsecure/
227
228
229 Authors
230 -------
231
232 Maintained by AsamK <asamk@gmx.de>, who is assisted by other open
233 source contributors. For more information about signal-cli development, see
234 <https://github.com/AsamK/signal-cli>.