Feature Matrix - AsamK/signal-cli GitHub Wiki
| feature | plaintext CLI | json CLI8 | dbus |
|---|---|---|---|
| addDevice | ✅ | ✅ | ✅1 |
| block | ✅ | ✅ | ✅3 |
| daemon2 | ✅ | NA18, 22 | ✅ |
| getObjectPath | NA22 | NA22 | ✅ |
| getUserStatus | ✅ | ✅ | ✅1, 13 |
| isAdmin | ❌ | ❌ | ✅1 |
| isMember | ❌ | ❌ | ✅ |
| isRegistered | ❌ | ❌ | ✅1 |
| joinGroup | ✅ | ✅ | ✅ |
| jsonRpc | ✅ | ✅ | NA22 |
| link | ✅ | ❌ | ✅ |
| listContacts | ✅ | ❌ | ✅15 |
| > getContactName | ✅ | ❌ | ✅ |
| > getContactNumber | ✅ | ❌ | ✅ |
| > isContactBlocked | ✅ | ❌ | ✅ |
| > listNumbers | ✅ | ❌ | ✅ |
| listDevices | ✅ | ❌ | ✅1 |
| listGroups | ✅ | ✅ | ✅19 |
| > getGroupAdminMembers | ✅26 | ✅26 | ✅1 |
| > getGroupIds | ✅26 | ✅26 | ✅ |
| > getGroupInviteUri | ✅26 | ✅26 | ✅1 |
| > getGroupMembers | ✅26 | ✅26 | ✅ |
| > getGroupName | ✅26 | ✅26 | ✅ |
| > getGroupPendingMembers | ✅26 | ✅26 | ✅1 |
| > getGroupRequestingMembers | ✅26 | ✅26 | ✅1 |
| > isGroupBlocked | ✅26 | ✅26 | ✅ |
| listIdentities | ✅ | ❌ | ✅1, 16 |
| > listIdentity | ✅17 | ❌ | ✅1 |
| listen | ❌ | ❌ | ✅1 |
| quitGroup | ✅ | ✅ | ✅ |
| receive | ✅ | ✅ | ✅ |
| register | ✅ | ❌ | ✅ |
| > registerWithCaptcha | ✅12 | ❌ | ✅ |
| remoteDelete | ✅ | ✅ | ✅ |
| > sendGroupRemoteDeleteMessage | ✅ | ✅ | ✅ |
| > sendRemoteDeleteMessage | ✅ | ✅ | ✅ |
| removeDevice | ✅ | ✅ | ✅1 |
| removePin | ✅ | ✅ | ✅1 |
| send | ✅ | ✅ | ✅ |
| > sendEndSessionMessage | ✅ | ✅ | ✅ |
| > sendMessage | ✅ | ✅ | ✅ |
| > send URL as attachment | ❌ | ❌ | ✅1 |
| > sendGroupMessage | ✅ | ✅ | ✅ |
| > sendNoteToSelfMessage | ✅ | ✅ | ✅ |
| > groupCallUpdate | ❌ | ❌ | ❌ |
| > payment | ❌ | ❌ | ❌ |
| > preview | ❌ | ❌ | ❌ |
| > sticker | ❌ | ❌ | ❌ |
| > viewOnce | ❌ | ❌ | ❌ |
| sendContacts | ✅ | ✅ | ✅ |
| sendReaction | ✅ | ✅ | ✅ |
| > sendMessageReaction | ✅ | ✅ | ✅ |
| > sendGroupMessageReaction | ✅ | ✅ | ✅ |
| sendReceipt | ✅ | ✅ | ✅28 |
| > sendReadReceipt | ❌ | ❌ | ✅ |
| > sendViewedReceipt | ❌ | ❌ | ✅1, 28 |
| sendSyncRequest | ✅ | ✅ | ✅1, 23 |
| sendTyping | ✅ | ✅ | ✅ |
| setPin | ✅ | ✅ | ✅1 |
| submitRateLimitChallenge | ✅ | ✅ | ❌ |
| trust | ✅ | ✅ | ✅1, 25 |
| unblock | ✅ | ✅ | ✅4 |
| unlisten | ❌ | ❌ | ✅1 |
| unregister | ✅ | ❌ | ✅1, 21 |
| updateAccount | ✅ | ✅ | ✅1 |
| updateConfiguration | ✅ | ✅ | ✅29 |
| updateContact | ✅ | ✅ | ✅10 |
| > setContactName | ✅ | ✅ | ✅ |
| > setExpirationTimer | ✅ | ✅ | ✅1 |
| updateGroup27 | ✅ | ✅ | ✅20 |
| updateProfile | ✅ | ✅ | ✅ |
| uploadStickerPack | ✅ | ❌ | ✅1 |
| verify | ✅ | ❌ | ✅ |
| > verifyWithPin | ✅14 | ❌ | ✅ |
| version | ✅ | ✅ | ✅ |
| feature | daemon | dbus |
|---|---|---|
| CallMessageReceived | ❌ | ❌ |
| MessageReceived | ✅ | ✅ |
| > receive attachments11 | ✅ | ✅ |
| OutgoingPaymentMessageReceived | ❌ | ❌ |
| ReceiptReceived | ✅ | ✅ |
| SyncMessageReceived | ✅ | ✅ |
| TypingMessageReceived | ❌ | ❌ |
| feature | plaintext CLI | json CLI8 | dbus |
|---|---|---|---|
| Call messages | ❌ | ❌ | ❌ |
| Attachment progress listener | ❌ | ❌ | ❌ |
| Payment Notifications | ❌ | ❌ | ❌ |
| Receive typing messages | ❌ | ❌ | ❌ |
| feature | plaintext CLI | json CLI8 | dbus |
|---|---|---|---|
| getAttachments | ✅ | ✅ | ✅ |
| getDataPath | ❌ | ❌ | ✅1 |
| getDestination | ✅ | ✅ | ✅ |
| getGroupId | ✅ | ✅ | ✅ |
| getMessage | ✅ | ✅ | ✅ |
| getSender | ✅ | ✅ | ✅ |
| getSource | ✅ | ✅ | ✅ |
| getTimestamp | ✅ | ✅ | ✅ |
| 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 | ✅ | ❌ | ❌ |
| feature | plaintext CLI | json CLI8 | dbus |
|---|---|---|---|
| timestamp | ✅ | ✅ | ❔ |
| message | ✅ | ✅ | ❔ |
| expiresInSeconds | ✅ | ✅ | ❔ |
| viewOnce | ✅ | ✅ | ❔ |
| reaction | ✅ | ✅ | ❔ |
| quote | ✅ | ✅ | ❔ |
| mentions | ✅ | ✅ | ❔ |
| attachments | ✅ | ✅ | ❔ |
| sticker | ✅ | ✅ | ❔ |
| remoteDelete | ✅ | ✅ | ❔ |
| contacts | ✅ | ✅ | ❔ |
| groupInfo | ✅ | ✅ | ❔ |
| feature | plaintext CLI | json CLI8 | dbus |
|---|---|---|---|
| id | ✅ | ✅ | ❔ |
| author | ✅ | ✅ | ❔ |
| text | ✅ | ✅ | ❔ |
| attachments9 | ✅ | ✅ | ❔ |
- Proposed via pull request https://github.com/johnfreed/signal-cli
- Runs daemon or communicates with running daemon
- Implemented indirectly:
setContactBlocked=trueorsetGroupBlocked=true - Implemented indirectly:
setContactBlocked=falseorsetGroupBlocked=false - Data is provided to output stream (if available from Signal servers) or accepted from input stream
- Provided indirectly by interpreting content file written to disk
- Obsolete (no longer part of Signal API)
- Supports JsonRpc command.
- A thumbnail has the data of an attachment, but is also part of a quoted attachment
-
updateContactis implemented indirectly through two subcommands:setContactNameandsetExpirationTimer - Attachments are written to disk, with remoteId sent over DBus
- Provided via the
--captchaoption - Provided via the
isRegisteredcommand - Provided via the
--pinoption - Provided indirectly by the
listNumberscommand, which returns an array of contact numbers, followed by a series of calls togetContactNameandisContactBlocked - Provided indirectly by the
listNumberscommand, which returns an array of contact numbers, followed by a series of calls tolistIdentity, which returns a four-element array - Provided via the
--numberoption -
daemoncommand supports Json output, but not input. Use theJsonRpccommand for Json input. - Provided indirectly by
getGroupIdsand a series of calls to
> getGroupAdminMembers> getGroupIds> getGroupInviteUri> getGroupMembers> getGroupName> getGroupPendingMembers> getGroupRequestingMembers> isGroupBlocked - Send the name of a zero-length file to delete the group avatar
- Does an
unlistenupon successfulunregistercommand - NA = Not Applicable
- Only works if a secondary device is running the daemon.
- Only works if a primary device is running the daemon.
- Does not implement the
-a, --trust-all-known-keysoption - Provided as part of the subcommand's
-d, --detailedoption or signal-cli's--output=jsonoption. - Creates a new group if the groupId or base64GroupId is omitted.
- Implemented on DBus via two methods: sendReadReceipt (merged) and sendViewedReceipt (pull request).
- Pull request submitted to implement as SetConfiguration and GetConfiguration on DBus.