=== listDevices
-Show a list of connected devices.
+Show a list of linked devices.
=== removeDevice
-Remove a connected device.
+Remove a linked device.
Only works, if this is the master device.
-*-d* DEVICEID, *--device-id* DEVICEID::
+*-d* DEVICE_ID, *--device-id* DEVICE_ID::
Specify the device you want to remove.
Use listDevices to see the deviceIds.
*-d*, *--detailed*::
Include the list of members of each group and the group invite link.
+=== listContacts
+
+Show a list of known contacts with names.
+
=== listIdentities
List all known identity keys and their trust status, fingerprint and safety number.
Add member to a group::
signal-cli -u USERNAME updateGroup -g GROUP_ID -m "NEW_MEMBER"
+Accept a group invitation::
+signal-cli -u USERNAME updateGroup -g GROUP_ID
+
Leave a group::
signal-cli -u USERNAME quitGroup -g GROUP_ID
.setDefault(OutputType.PLAIN_TEXT);
parser.addArgument("--service-environment")
- .help("Choose the server environment to use, SANDBOX or LIVE.")
+ .help("Choose the server environment to use.")
.type(Arguments.enumStringType(ServiceEnvironmentCli.class))
.setDefault(ServiceEnvironmentCli.LIVE);
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Link another device to this device. Only works, if this is the master device.");
subparser.addArgument("--uri")
.required(true)
.help("Specify the uri contained in the QR code shown by the new device.");
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Block the given contacts or groups (no messages will be received)");
subparser.addArgument("contact").help("Contact number").nargs("*");
subparser.addArgument("-g", "--group").help("Group ID").nargs("*");
- subparser.help("Block the given contacts or groups (no messages will be received)");
}
@Override
package org.asamk.signal.commands;
-import java.util.HashMap;
import java.util.Map;
+import java.util.TreeMap;
public class Commands {
- private static final Map<String, Command> commands = new HashMap<>();
+ private static final Map<String, Command> commands = new TreeMap<>();
static {
addCommand("addDevice", new AddDeviceCommand());
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Run in daemon mode and provide an experimental dbus interface.");
subparser.addArgument("--system")
.action(Arguments.storeTrue())
.help("Use DBus system bus instead of user bus.");
@Override
public void attachToSubparser(final Subparser subparser) {
- subparser.addArgument("number").help("Phone number").nargs("+");
subparser.help("Check if the specified phone number/s have been registered");
+ subparser.addArgument("number").help("Phone number").nargs("+");
subparser.addArgument("--json")
.help("WARNING: This parameter is now deprecated! Please use the global \"--output=json\" option instead.\n\nOutput received messages in json format, one json object per line.")
.action(Arguments.storeTrue());
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Join a group via an invitation link.");
subparser.addArgument("--uri").required(true).help("Specify the uri with the group invitation link.");
}
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Link to an existing device, instead of registering a new number.");
subparser.addArgument("-n", "--name").help("Specify a name to describe this new device.");
}
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Show a list of known contacts with names.");
}
@Override
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Show a list of linked devices.");
}
@Override
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("List group information including names, ids, active status, blocked status and members");
subparser.addArgument("-d", "--detailed")
.action(Arguments.storeTrue())
.help("List the members and group invite links of each group. If output=json, then this is always set");
-
- subparser.help("List group information including names, ids, active status, blocked status and members");
}
@Override
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("List all known identity keys and their trust status, fingerprint and safety number.");
subparser.addArgument("-n", "--number").help("Only show identity keys for the given phone number.");
}
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Send a quit group message to all group members and remove self from member list.");
subparser.addArgument("-g", "--group").required(true).help("Specify the recipient group ID.");
subparser.addArgument("--admin")
.nargs("*")
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Query the server for new messages.");
subparser.addArgument("-t", "--timeout")
.type(double.class)
.setDefault(3.0)
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Register a phone number with SMS or voice verification.");
subparser.addArgument("-v", "--voice")
- .help("The verification should be done over voice, not sms.")
+ .help("The verification should be done over voice, not SMS.")
.action(Arguments.storeTrue());
subparser.addArgument("--captcha")
.help("The captcha token, required if registration failed with a captcha required error.");
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Remove a linked device.");
subparser.addArgument("-d", "--device-id", "--deviceId")
.type(int.class)
.required(true)
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Remove the registration lock pin.");
}
@Override
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Send a message to another user or group.");
subparser.addArgument("recipient").help("Specify the recipients' phone number.").nargs("*");
final var mutuallyExclusiveGroup = subparser.addMutuallyExclusiveGroup();
mutuallyExclusiveGroup.addArgument("-g", "--group").help("Specify the recipient group ID.");
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Set a registration lock pin, to prevent others from registering this number.");
subparser.addArgument("registrationLockPin")
.help("The registration lock PIN, that will be required for new registrations (resets after 7 days of inactivity)");
}
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Set the trust level of a given number.");
subparser.addArgument("number").help("Specify the phone number, for which to set the trust.").required(true);
var mutTrust = subparser.addMutuallyExclusiveGroup();
mutTrust.addArgument("-a", "--trust-all-known-keys")
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Unblock the given contacts or groups (messages will be received again)");
subparser.addArgument("contact").help("Contact number").nargs("*");
subparser.addArgument("-g", "--group").help("Group ID").nargs("*");
- subparser.help("Unblock the given contacts or groups (messages will be received again)");
}
@Override
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Update the details of a given contact");
subparser.addArgument("number").help("Contact number");
subparser.addArgument("-n", "--name").required(true).help("New contact name");
subparser.addArgument("-e", "--expiration")
.required(false)
.type(int.class)
.help("Set expiration time of messages (seconds)");
- subparser.help("Update the details of a given contact");
}
@Override
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Create or update a group.");
subparser.addArgument("-g", "--group").help("Specify the recipient group ID.");
subparser.addArgument("-n", "--name").help("Specify the new group name.");
subparser.addArgument("-d", "--description").help("Specify the new group description.");
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Set a name, about and avatar image for the user profile");
subparser.addArgument("--given-name", "--name").help("New profile (given) name");
subparser.addArgument("--family-name").help("New profile family name (optional)");
subparser.addArgument("--about").help("New profile about text");
final var avatarOptions = subparser.addMutuallyExclusiveGroup();
avatarOptions.addArgument("--avatar").help("Path to new profile avatar");
avatarOptions.addArgument("--remove-avatar").action(Arguments.storeTrue());
-
- subparser.help("Set a name, about and avatar image for the user profile");
}
@Override
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Upload a new sticker pack, consisting of a manifest file and the stickers images.");
subparser.addArgument("path")
.help("The path of the manifest.json or a zip file containing the sticker pack you wish to upload.");
}
@Override
public void attachToSubparser(final Subparser subparser) {
+ subparser.help("Verify the number using the code received via SMS or voice.");
subparser.addArgument("verificationCode").help("The verification code you received via sms or voice call.");
subparser.addArgument("-p", "--pin").help("The registration lock PIN, that was set by the user (Optional)");
}