id = "signal-cli"
name = "signal-cli"
homepage = "https://github.com/AsamK/signal-cli"
description = "A commandline interface for the Signal messenger."
executables = ["signal-cli"]
[dotfiles]
paths = []
secret = ["[xdgData]/signal-cli/"]
[commands]
format = 1
label = "signal-cli"
description = "Global account and output options; send and receive are separate forms. Registration, linking, groups and daemon mode are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = true, short_bundles = false }
[[commands.source]]
id = "signal-man"
kind = "manual"
url = "https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc"
revision = "master"
evidence = '''*signal-cli* [--data-dir DATA_DIR] [-h | -v | -a ACCOUNT | --dbus | --dbus-system] command [command-options]
*-a* ACCOUNT, *--account* ACCOUNT::
Specify your phone number, that will be your identifier.
*-o* OUTPUT-MODE, *--output* OUTPUT-MODE::
Specify if you want commands to output in either "plain-text" mode or in "json".'''
[[commands.field]]
id = "account"
label = "Account (phone number)"
description = "Include the country code, starting with +. Optional when only one account exists locally."
type = "string"
option = ["--account", "-a"]
sources = ["signal-man"]
[[commands.field]]
id = "output"
label = "Output mode"
type = "enum"
option = ["--output", "-o"]
choices = [{ value = "plain-text", label = "Plain text" }, { value = "json", label = "JSON" }]
sources = ["signal-man"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["account", "output"]
[[commands.subcommand]]
path = ["send"]
label = "Send a message"
description = "Send a text message, optionally with one attachment, to recipients or a group."
[[commands.subcommand.source]]
id = "signal-man"
kind = "manual"
url = "https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc"
revision = "master"
evidence = '''=== send
Send a message to another user or group.
RECIPIENT::
*--note-to-self*::
*-g* GROUP, *--group-id* GROUP::
*-m* MESSAGE, *--message* MESSAGE::
*--message-from-stdin*::
*-a* [ATTACHMENT [ATTACHMENT ...]], *--attachment* [ATTACHMENT [ATTACHMENT ...]]::
*--view-once*::'''
[[commands.subcommand.field]]
id = "recipient"
label = "Recipients"
description = "Phone numbers including country code. Leave empty when using a group or note to self."
type = "string"
position = 0
multiple = true
sources = ["signal-man"]
[[commands.subcommand.field]]
id = "message"
label = "Message"
type = "string"
option = ["--message", "-m"]
sources = ["signal-man"]
[[commands.subcommand.field]]
id = "group_id"
label = "Group ID (base64)"
type = "string"
option = ["--group-id", "-g"]
sources = ["signal-man"]
[[commands.subcommand.field]]
id = "attachment"
label = "Attachment"
description = "One file. Several attachments are not offered in this form."
type = "path"
option = ["--attachment"]
path = { kind = "file", role = "input" }
sources = ["signal-man"]
[[commands.subcommand.field]]
id = "note_to_self"
label = "Send to myself"
type = "boolean"
option = ["--note-to-self"]
sources = ["signal-man"]
[[commands.subcommand.field]]
id = "message_from_stdin"
label = "Read message from standard input"
type = "boolean"
option = ["--message-from-stdin"]
sources = ["signal-man"]
[[commands.subcommand.field]]
id = "view_once"
label = "View-once message"
type = "boolean"
option = ["--view-once"]
sources = ["signal-man"]
[[commands.subcommand.task]]
id = "text"
label = "Send a text message"
fields = ["recipient", "message"]
required = ["recipient", "message"]
[[commands.subcommand.task]]
id = "group"
label = "Message a group"
fields = ["group_id", "message"]
required = ["group_id", "message"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["recipient", "message", "group_id", "attachment"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["note_to_self", "message_from_stdin", "view_once"]
[[commands.subcommand]]
path = ["receive"]
label = "Receive messages"
description = "Fetch pending messages and print them."
[[commands.subcommand.source]]
id = "signal-man"
kind = "manual"
url = "https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc"
revision = "master"
evidence = '''=== receive
Query the server for new messages.
*-t* TIMEOUT, *--timeout* TIMEOUT::
*--max-messages* MAX_MESSAGES::
*--ignore-attachments*::
*--send-read-receipts*::'''
[[commands.subcommand.field]]
id = "timeout"
label = "Timeout (seconds)"
type = "integer"
option = ["--timeout", "-t"]
sources = ["signal-man"]
[[commands.subcommand.field]]
id = "max_messages"
label = "Maximum messages"
type = "integer"
option = ["--max-messages"]
sources = ["signal-man"]
[[commands.subcommand.field]]
id = "ignore_attachments"
label = "Skip attachment downloads"
type = "boolean"
option = ["--ignore-attachments"]
sources = ["signal-man"]
[[commands.subcommand.field]]
id = "send_read_receipts"
label = "Send read receipts"
type = "boolean"
option = ["--send-read-receipts"]
sources = ["signal-man"]
[[commands.subcommand.task]]
id = "poll"
label = "Check for new messages"
fields = ["timeout", "max_messages"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["timeout", "max_messages", "ignore_attachments"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["send_read_receipts"]