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] # signal-cli's own man page says --data-dir stores account data and local # configuration, defaulting to $XDG_DATA_HOME/signal-cli (or # $HOME/.local/share/signal-cli): # https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc # Account data includes identity keys and registration state, so the whole # directory is withheld as a secret rather than copied as ordinary content. 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"]