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