Skip to content
John Freed edited this page Aug 19, 2021 · 96 revisions

Commands

feature plaintext CLI json CLI8 dbus
addDevice βœ… ❌ βœ…1
block βœ… ❌ βœ…3
daemon2 βœ… βœ… βœ…
getContactNumber ❌ ❌ βœ…
getObjectPath NA22 NA22 βœ…
getUserStatus βœ… βœ… βœ…1, 13
isMember ❌ ❌ βœ…
isRegistered ❌ ❌ βœ…1
joinGroup βœ… ❌ βœ…
jsonRpc βœ… βœ… NA22
link βœ… ❌ βœ…18
listContacts βœ… ❌ βœ…15
> getContactName ❌ ❌ βœ…
> isContactBlocked ❌ ❌ βœ…
> listNumbers ❌ ❌ βœ…
listDevices βœ… ❌ βœ…1
listGroups βœ… ❌ βœ…19
> getGroupAdminMembers βœ…26 ❌ βœ…1
> getGroupIds βœ…26 ❌ βœ…
> getGroupInviteUri βœ…26 ❌ βœ…1
> getGroupMembers βœ…26 ❌ βœ…
> getGroupName βœ…26 ❌ βœ…
> getGroupPendingMembers βœ…26 ❌ βœ…1
> getGroupRequestingMembers βœ…26 ❌ βœ…1
> isGroupBlocked βœ…26 ❌ βœ…
listIdentities βœ… ❌ βœ…1, 16
> listIdentity βœ…17 ❌ βœ…1
quitGroup βœ… ❌ βœ…
receive βœ… βœ… βœ…
register βœ… ❌ βœ…18
> registerWithCaptcha βœ…12 ❌ βœ…18
remoteDelete βœ… ❌ βœ…
>Β sendGroupRemoteDeleteMessage βœ… ❌ βœ…
> sendRemoteDeleteMessage βœ… ❌ βœ…
removeDevice βœ… ❌ βœ…1
removePin βœ… ❌ βœ…1
send βœ… ❌ βœ…
> sendEndSessionMessage βœ… ❌ βœ…
> sendMessage βœ… ❌ βœ…
> sendMessageV2 ❌ ❌ βœ…1
> send URL as attachment ❌ ❌ βœ…1
> sendGroupMessage βœ… ❌ βœ…
> sendGroupMessageV2 ❌ ❌ βœ…1
> sendNoteToSelfMessage βœ… ❌ βœ…
> sendNoteToSelfMessageV2 ❌ ❌ βœ…1
> groupCallUpdate ❌ ❌ ❌
> payment ❌ ❌ ❌
> preview ❌ ❌ ❌
> sticker ❌ ❌ ❌
> viewOnce ❌ ❌ ❌
sendContacts βœ… ❌ βœ…
sendReaction βœ… ❌ βœ…
> sendMessageReaction βœ… ❌ βœ…
> sendGroupMessageReaction βœ… ❌ βœ…
sendSyncRequest βœ… ❌ βœ…1, 23
sendTyping βœ… ❌ βœ…1
setPin βœ… ❌ βœ…1
trust βœ… ❌ βœ…1, 25
unblock βœ… ❌ βœ…4
unregister βœ… ❌ βœ…1, 21
updateAccount βœ… ❌ βœ…1
updateContact βœ… ❌ βœ…10
> setContactName βœ… ❌ βœ…
> setExpirationTimer βœ… ❌ βœ…1
updateGroup27 βœ… ❌ βœ…20
updateProfile βœ… ❌ βœ…
uploadStickerPack βœ… ❌ βœ…1
verify βœ… ❌ βœ…18
> verifyWithPin βœ…14 ❌ βœ…18
version βœ… ❌ βœ…

Signals

feature daemon dbus
CallMessageReceived ❌ ❌
MessageReceived βœ… βœ…
> receive attachments11 βœ… βœ…
OutgoingPaymentMessageReceived ❌ ❌
ReceiptReceived βœ… βœ…
SyncMessageReceived βœ… βœ…
TypingMessageReceived ❌ ❌

TODO

feature plaintext CLI json CLI8 dbus
Call messages ❌ ❌ ❌
Attachment progress listener ❌ ❌ ❌
Payment Notifications ❌ ❌ ❌
Receive typing messages ❌ ❌ ❌

Utilities

feature plaintext CLI json CLI8 dbus
getAttachments βœ… βœ… βœ…
getDestination βœ… βœ… βœ…
getGroupId βœ… βœ… βœ…
getMessage βœ… βœ… βœ…
getSender βœ… βœ… βœ…
getSource βœ… βœ… βœ…
getTimestamp βœ… βœ… βœ…

With Attachment Data5

feature plaintext CLI json CLI8 dbus
content βœ… βœ… βœ…
thumbnail9 βœ… βœ… ❔
contentType βœ… βœ… βœ…1, 6
filename βœ… βœ… βœ…1
remoteId βœ… βœ… βœ…1, 6
size βœ… βœ… βœ…1, 6
keyLength βœ… βœ…1 βœ…1
width βœ… βœ…1 βœ…1
height βœ… βœ…1 βœ…1
voiceNote βœ… βœ…1 βœ…1
caption βœ… βœ…1 βœ…1
borderless ❌ ❌ ❌
gif7 NA22 NA22 NA22
preview ❌ ❌ ❌
digest ❌ ❌ ❌
uploadTimestamp ❌ ❌ ❌
listener ❌ ❌ ❌
> cancelationSignal ❌ ❌ ❌
resumableUploadSpec βœ… ❌ ❌

With Message Data5

feature plaintext CLI json CLI8 dbus
timestamp βœ… βœ… ❔
message βœ… βœ… ❔
expiresInSeconds βœ… βœ… ❔
viewOnce βœ… βœ… ❔
reaction βœ… βœ… ❔
quote βœ… βœ… ❔
mentions βœ… βœ… ❔
attachments βœ… βœ… ❔
sticker βœ… βœ… ❔
remoteDelete βœ… βœ… ❔
contacts βœ… βœ… ❔
groupInfo βœ… βœ… ❔

With Quote Data5

feature plaintext CLI json CLI8 dbus
id βœ… βœ… ❔
author βœ… βœ… ❔
text βœ… βœ… ❔
attachments9 βœ… βœ… ❔

Notes

  1. Proposed https://github.com/johnfreed/signal-cli
  2. Runs daemon or communicates with running daemon
  3. Implemented indirectly: setContactBlocked=true or setGroupBlocked=true
  4. Implemented indirectly: setContactBlocked=false or setGroupBlocked=false
  5. Data is provided to output stream (if available from Signal servers) or accepted from input stream
  6. Provided indirectly by interpreting content file written to disk
  7. Obsolete (no longer part of Signal API)
  8. --output json option is supported by CLI
  9. A thumbnail has the data of an attachment, but is also part of a quoted attachment
  10. updateContact is implemented indirectly through two subcommands: setContactName and setExpirationTimer
  11. Attachments are written to disk, with remoteId sent over DBus
  12. Provided via the --captcha option
  13. Provided via the isRegistered command
  14. Provided via the --pin option
  15. Provided indirectly by the listNumbers command, which returns an array of contact numbers, followed by a series of calls to getContactName and isContactBlocked
  16. Provided indirectly by the listNumbers command, which returns an array of contact numbers, followed by a series of calls to listIdentity, which returns a four-element array
  17. Provided via the --number option
  18. Uses org.asamk.SignalControl as well as org.asamk.Signal
  19. Provided indirectly by getGroupIds and a series of calls to
    > getGroupAdminMembers > getGroupIds > getGroupInviteUri > getGroupMembers > getGroupName > getGroupPendingMembers > getGroupRequestingMembers > isGroupBlocked
  20. Send the name of a zero-length file to delete the group avatar
  21. Kills daemon upon successful unregister command
  22. NA = Not Applicable
  23. Only works if a secondary device is running the daemon.
  24. Only works if a primary device is running the daemon.
  25. Does not implement the -a, --trust-all-known-keys option
  26. Provided as part of the subcommand's -d, --detailed option or signal-cli's --output=json option.
  27. Creates a new group if the groupId or base64GroupId is omitted.
Clone this wiki locally