Attention: Now requires native libsignal-client version 0.9
- Removed deprecated
--json
parameter, use global parameter--output=json
instead - Json output format of
listGroups
command changed: Members are now arrays of{"number":"...","uuid":"..."}
objects instead of arrays of strings. - Removed deprecated fallback data paths, only
$XDG_DATA_HOME/signal-cli
is used now For those still using the old paths ($HOME/.config/signal
,$HOME/.config/textsecure
) you need to move those to the new location.
- New global parameter
--trust-new-identities=always
to allow trusting any new identity key without verification - New parameter
--device-name
forupdateAccount
command to change the device name (also works for the main device) - New SignalControl DBus interface, to register/verify/link new accounts
- New
jsonRpc
command that provides a JSON-RPC based API on stdout/stdin - Support for announcement groups
- New parameter
--set-permission-send-messages
forupdateGroup
to create an announcement group - New
sendReceipt
command to send read and viewed receipts - Support for receiving sender key messages, mobile apps can now send messages more efficiently with server-side fan-out to groups with signal-cli members.
- Support for reading data from remote Signal storage. Now v2 groups will be shown after linking a new device.
- New
submitRateLimitChallenge
command that can be used to lift some rate-limits by solving a captcha
- Store identity key correctly when sending a message after a recipient has changed keys
- Source name is included in JSON receive output (Thanks @technillogue)
- Allow updateContact command to only set expiration timer without requiring a name parameter
- Incorrect error handling in register command
Attention: Now requires native libsignal-client version 0.8.1
- New parameters for
updateGroup
command for group v2 features:--description
,--remove-member
,--admin
,--remove-admin
,--reset-link
,--link
,--set-permission-add-member
,--set-permission-edit-details
,--expiration
- New
--admin
parameter forquitGroup
to set an admin before leaving the group - New
--delete
parameter forquitGroup
, to delete the local group data - New 'sendTyping' command to send typing indicators
- Fixed issue that prevented registration with invalid locales
- Prevent last admin of a group from leaving the group
- All commands now show a short description with
--help
- Now a hint is shown if messages aren't received regularly
- Group edit conflicts are now resolved automatically
- Upgrading from account files with older profiles
- Building native image with graalvm
- A manual page for the DBus interface (Thanks @bublath, @exquo)
- Remote message delete command (Thanks @adaptivegarage)
- sendSyncRequest command to request complete contact/group list from master device
- New
--delete-account
argument for unregister (Dangerous) - New
--family-name
argument for updateProfile
- Sending reaction to group (Thanks @adaptivegarage)
- Displaying of address for messages from untrusted identities
- Handling of recipient number or uuid changes (e.g. after account deletions)
- Only respond to sync requests from master device
- Display of quit group messages
- Unlimited strength crypto is now enabled automatically for JREs that require it (Thanks @i-infra)
- Only one identity key is stored per recipient and updated from profile (to match app behavior)
- updateContact, block and unblock are now disabled for linked devices
- After registering an empty profile is created so new groups can be joined immediately
- If message decryption fails due to a broken session, the session is automatically renewed
- Rework account storage for better reliability
- Improved device linking flow
- Allow relinking existing account
- Encrypt/Decrypt device names
- New dbus commands: updateProfile, listNumbers, getContactNumber, quitGroup, isContactBlocked, isGroupBlocked, isMember, joinGroup (Thanks @bublath)
- Additional output for json format: shared contacts (Thanks @Atomic-Bean)
- Improved plain text output to be more consistent and synced messages are now indented
- Issue with broken sessions with linked devices
- Behavior of
trust
command improved, when trusting a new identity key all other known keys for the same number are removed.
Attention: For all signal protocol functionality an additional native library is now required: libsignal-client. See https://github.com/AsamK/signal-cli/wiki/Provide-native-lib-for-libsignal for more information.
- Experimental support for building a GraalVM native image
- Support for setting profile about text and emoji
- Incorrect error message when removing a non-existent profile avatar
- Notify linked devices after profile has been updated
- After registering a new account, receiving messages didn't work You may have to register and verify again to fix the issue.
- Creating v1 groups works again
getUserStatus
command to check if a user is registered on Signal (Thanks @Atomic-Bean)- Global
--verbose
flag to increase log level - Global
--output=json
flag, currently supported byreceive
,daemon
,getUserStatus
,listGroups
--note-to-self
flag forsend
command to send a note to linked devices- More info for received messages in json output: stickers, viewOnce, typing, remoteDelete
- signal-cli can now be used without the username
-u
flag For daemon command all local users will be exposed as dbus objects. If only one local user exists, all other commands will use that user, otherwise a user has to be specified. - Messages sent to self number will be sent as normal Signal messages again, to
send a sync message, use the new
--note-to-self
flag - Ignore messages with group context sent by non group member
- Profile key is sent along with all direct messages
- In json output unnecessary fields that are null are now omitted
- Disable registration lock before removing the PIN
- Fix PIN hash version to match the official clients. If you had previously set a PIN you need to set it again to be able to unlock the registration lock later.
- Issue with saving account file after linking
- Implement new registration lock PIN with
setPin
andremovePin
(with KBS) - Include quotes, mentions and reactions in json output (Thanks @Atomic-Bean)
- Retrieve avatars for v2 groups
- Download attachment thumbnail for quoted attachments
- Accept group invitation with
updateGroup -g GROUP_ID
- Decline group invitation with
quitGroup -g GROUP_ID
- Join group via invitation link
joinGroup --uri https://signal.group/#...
- Include group ids for v2 groups in json output
Support for groups of new type/v2
- Sending and receiving
- Updating name, avatar and adding members with
updateGroup
- Quit group and decline invitation with
quitGroup
- In the
listGroups
output v2 groups can be recognized by the longer groupId
Attention: For the new group support to work the native libzkgroup library is required. See https://github.com/AsamK/signal-cli/wiki/Provide-native-lib-for-libsignal for more information.
- Rare NullPointerException when receiving messages
- Show additional message content (view once, remote delete, mention, …) for received messages
--captcha
parameter forregister
command, required for some IP ranges
- Profile keys are now stored separately from contact list
- Receipts from normal and unidentified messages now have the same format in json output
- Issue where some messages were sent with an old counter index
Look at the release tags for information about older releases.