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