{
  "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
    },
    "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]\n*-a* ACCOUNT, *--account* ACCOUNT::\nSpecify your phone number, that will be your identifier.\n*-o* OUTPUT-MODE, *--output* OUTPUT-MODE::\nSpecify if you want commands to output in either \"plain-text\" mode or in \"json\"."
      }
    ],
    "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"
        ]
      },
      {
        "id": "output",
        "label": "Output mode",
        "type": "enum",
        "option": [
          "--output",
          "-o"
        ],
        "choices": [
          {
            "value": "plain-text",
            "label": "Plain text"
          },
          {
            "value": "json",
            "label": "JSON"
          }
        ],
        "sources": [
          "signal-man"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "account",
          "output"
        ]
      }
    ],
    "subcommand": [
      {
        "path": [
          "send"
        ],
        "label": "Send a message",
        "description": "Send a text message, optionally with one attachment, to recipients or a group.",
        "source": [
          {
            "id": "signal-man",
            "kind": "manual",
            "url": "https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc",
            "revision": "master",
            "evidence": "=== send\nSend a message to another user or group.\nRECIPIENT::\n*--note-to-self*::\n*-g* GROUP, *--group-id* GROUP::\n*-m* MESSAGE, *--message* MESSAGE::\n*--message-from-stdin*::\n*-a* [ATTACHMENT [ATTACHMENT ...]], *--attachment* [ATTACHMENT [ATTACHMENT ...]]::\n*--view-once*::"
          }
        ],
        "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"
            ]
          },
          {
            "id": "message",
            "label": "Message",
            "type": "string",
            "option": [
              "--message",
              "-m"
            ],
            "sources": [
              "signal-man"
            ]
          },
          {
            "id": "group_id",
            "label": "Group ID (base64)",
            "type": "string",
            "option": [
              "--group-id",
              "-g"
            ],
            "sources": [
              "signal-man"
            ]
          },
          {
            "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"
            ]
          },
          {
            "id": "note_to_self",
            "label": "Send to myself",
            "type": "boolean",
            "option": [
              "--note-to-self"
            ],
            "sources": [
              "signal-man"
            ]
          },
          {
            "id": "message_from_stdin",
            "label": "Read message from standard input",
            "type": "boolean",
            "option": [
              "--message-from-stdin"
            ],
            "sources": [
              "signal-man"
            ]
          },
          {
            "id": "view_once",
            "label": "View-once message",
            "type": "boolean",
            "option": [
              "--view-once"
            ],
            "sources": [
              "signal-man"
            ]
          }
        ],
        "task": [
          {
            "id": "text",
            "label": "Send a text message",
            "fields": [
              "recipient",
              "message"
            ],
            "required": [
              "recipient",
              "message"
            ]
          },
          {
            "id": "group",
            "label": "Message a group",
            "fields": [
              "group_id",
              "message"
            ],
            "required": [
              "group_id",
              "message"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "recipient",
              "message",
              "group_id",
              "attachment"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "note_to_self",
              "message_from_stdin",
              "view_once"
            ]
          }
        ]
      },
      {
        "path": [
          "receive"
        ],
        "label": "Receive messages",
        "description": "Fetch pending messages and print them.",
        "source": [
          {
            "id": "signal-man",
            "kind": "manual",
            "url": "https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc",
            "revision": "master",
            "evidence": "=== receive\nQuery the server for new messages.\n*-t* TIMEOUT, *--timeout* TIMEOUT::\n*--max-messages* MAX_MESSAGES::\n*--ignore-attachments*::\n*--send-read-receipts*::"
          }
        ],
        "field": [
          {
            "id": "timeout",
            "label": "Timeout (seconds)",
            "type": "integer",
            "option": [
              "--timeout",
              "-t"
            ],
            "sources": [
              "signal-man"
            ]
          },
          {
            "id": "max_messages",
            "label": "Maximum messages",
            "type": "integer",
            "option": [
              "--max-messages"
            ],
            "sources": [
              "signal-man"
            ]
          },
          {
            "id": "ignore_attachments",
            "label": "Skip attachment downloads",
            "type": "boolean",
            "option": [
              "--ignore-attachments"
            ],
            "sources": [
              "signal-man"
            ]
          },
          {
            "id": "send_read_receipts",
            "label": "Send read receipts",
            "type": "boolean",
            "option": [
              "--send-read-receipts"
            ],
            "sources": [
              "signal-man"
            ]
          }
        ],
        "task": [
          {
            "id": "poll",
            "label": "Check for new messages",
            "fields": [
              "timeout",
              "max_messages"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "timeout",
              "max_messages",
              "ignore_attachments"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "send_read_receipts"
            ]
          }
        ]
      }
    ]
  }
}
