{
  "schema_version": "cmdhub.website.command_catalog.v1",
  "tool": "signal",
  "title": "Signal CLI",
  "description": "Signal resources through the cmdhub CLI.",
  "auth_mode": "Device link",
  "auth_scopes": {},
  "markdown_url": "/cli/signal/index.md",
  "commands": [
    {
      "id": "cmd-signal-login",
      "path": "signal login",
      "name": "login",
      "short": "Link this CLI as a Signal secondary device",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "signal login\nsignal login --device-name laptop",
      "flags": [
        {
          "name": "device-name",
          "type": "string",
          "usage": "Device name shown in Signal mobile"
        },
        {
          "name": "timeout",
          "type": "duration",
          "usage": "How long to wait for phone approval"
        },
        {
          "name": "show-url",
          "type": "bool",
          "usage": "Print the raw provisioning URL"
        },
        {
          "name": "servers",
          "type": "string",
          "usage": "Signal server set: production|staging"
        }
      ]
    },
    {
      "id": "cmd-signal-auth",
      "path": "signal auth",
      "name": "auth",
      "short": "auth commands",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "",
      "flags": []
    },
    {
      "id": "cmd-signal-auth-login",
      "path": "signal auth login",
      "name": "login",
      "short": "Link this CLI as a Signal secondary device",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "signal auth login",
      "flags": [
        {
          "name": "device-name",
          "type": "string",
          "usage": "Device name shown in Signal mobile"
        },
        {
          "name": "timeout",
          "type": "duration",
          "usage": "How long to wait for phone approval"
        },
        {
          "name": "show-url",
          "type": "bool",
          "usage": "Print the raw provisioning URL"
        },
        {
          "name": "servers",
          "type": "string",
          "usage": "Signal server set: production|staging"
        }
      ]
    },
    {
      "id": "cmd-signal-auth-status",
      "path": "signal auth status",
      "name": "status",
      "short": "Show the linked Signal identity",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal auth status",
      "flags": []
    },
    {
      "id": "cmd-signal-auth-whoami",
      "path": "signal auth whoami",
      "name": "whoami",
      "short": "Show the linked Signal identity",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal auth whoami",
      "flags": []
    },
    {
      "id": "cmd-signal-auth-logout",
      "path": "signal auth logout",
      "name": "logout",
      "short": "Remove the local linked-device database",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "signal auth logout --yes",
      "flags": [
        {
          "name": "yes",
          "type": "bool",
          "usage": "Delete local state without confirmation"
        }
      ]
    },
    {
      "id": "cmd-signal-status",
      "path": "signal status",
      "name": "status",
      "short": "Show the linked Signal identity",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal status",
      "flags": []
    },
    {
      "id": "cmd-signal-whoami",
      "path": "signal whoami",
      "name": "whoami",
      "short": "Show the linked Signal identity",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal whoami",
      "flags": []
    },
    {
      "id": "cmd-signal-logout",
      "path": "signal logout",
      "name": "logout",
      "short": "Remove the local linked-device database",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "signal logout --yes",
      "flags": [
        {
          "name": "yes",
          "type": "bool",
          "usage": "Delete local state without confirmation"
        }
      ]
    },
    {
      "id": "cmd-signal-profile",
      "path": "signal profile",
      "name": "profile",
      "short": "profile commands",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "",
      "flags": []
    },
    {
      "id": "cmd-signal-profile-list",
      "path": "signal profile list",
      "name": "list",
      "short": "Explain the fixed linked-device profile",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal profile list",
      "flags": []
    },
    {
      "id": "cmd-signal-profile-create",
      "path": "signal profile create",
      "name": "create",
      "short": "Report that Signal profile creation is unsupported",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "signal profile create --name cmdhub-eval-temp",
      "flags": [
        {
          "name": "name",
          "type": "string",
          "usage": "Requested profile name"
        }
      ]
    },
    {
      "id": "cmd-signal-profile-delete",
      "path": "signal profile delete",
      "name": "delete",
      "short": "Report that Signal profile deletion is unsupported",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "signal profile delete cmdhub-eval-temp",
      "flags": [
        {
          "name": "yes",
          "type": "bool",
          "usage": "Acknowledge the cleanup check"
        }
      ]
    },
    {
      "id": "cmd-signal-sync",
      "path": "signal sync",
      "name": "sync",
      "short": "Receive and store pending messages",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "signal sync --once",
      "flags": [
        {
          "name": "once",
          "type": "bool",
          "usage": "Exit once the current server queue is empty"
        }
      ]
    },
    {
      "id": "cmd-signal-contact",
      "path": "signal contact",
      "name": "contact",
      "short": "contact commands",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "",
      "flags": []
    },
    {
      "id": "cmd-signal-contact-list",
      "path": "signal contact list",
      "name": "list",
      "short": "List synced contacts",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal contact list",
      "flags": []
    },
    {
      "id": "cmd-signal-group",
      "path": "signal group",
      "name": "group",
      "short": "group commands",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "",
      "flags": []
    },
    {
      "id": "cmd-signal-group-list",
      "path": "signal group list",
      "name": "list",
      "short": "List synced groups",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal group list\nsignal group list --verbose",
      "flags": [
        {
          "name": "verbose",
          "type": "bool",
          "usage": "Show more group metadata"
        }
      ]
    },
    {
      "id": "cmd-signal-message",
      "path": "signal message",
      "name": "message",
      "short": "message commands",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "",
      "flags": []
    },
    {
      "id": "cmd-signal-message-list",
      "path": "signal message list",
      "name": "list",
      "short": "List local messages for a contact or group",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal message list --contact c1\nsignal message list --group g1",
      "flags": [
        {
          "name": "contact",
          "type": "string",
          "usage": "Contact ref, ACI UUID, or service ID"
        },
        {
          "name": "group",
          "type": "string",
          "usage": "Group ref or group master key"
        },
        {
          "name": "from",
          "type": "int",
          "usage": "Local message offset"
        }
      ]
    },
    {
      "id": "cmd-signal-message-get",
      "path": "signal message get",
      "name": "get",
      "short": "Hidden alias for exact message lookup",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal message get m1\nsignal resolve m1",
      "flags": []
    },
    {
      "id": "cmd-signal-message-send",
      "path": "signal message send",
      "name": "send",
      "short": "Send a message to a contact or group",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "signal message send --to c1 --message hello\nsignal message send --group g1 --message hello",
      "flags": [
        {
          "name": "to",
          "type": "string",
          "usage": "Recipient contact ref or ACI UUID"
        },
        {
          "name": "group",
          "type": "string",
          "usage": "Group ref or group master key"
        },
        {
          "name": "message",
          "type": "string",
          "usage": "Message body"
        },
        {
          "name": "attach",
          "type": "path",
          "usage": "Attachment path; repeatable"
        }
      ]
    },
    {
      "id": "cmd-signal-message-delete",
      "path": "signal message delete",
      "name": "delete",
      "short": "Delete one local synced message by ref",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": true,
      "example": "signal message delete m1 --yes",
      "flags": [
        {
          "name": "yes",
          "type": "bool",
          "usage": "Confirm local deletion for non-disposable messages"
        },
        {
          "name": "dry-run",
          "type": "bool",
          "usage": "Preview local deletion without changing the store"
        }
      ]
    },
    {
      "id": "cmd-signal-device",
      "path": "signal device",
      "name": "device",
      "short": "device commands",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "",
      "flags": []
    },
    {
      "id": "cmd-signal-device-list",
      "path": "signal device list",
      "name": "list",
      "short": "List linked devices",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal device list",
      "flags": []
    },
    {
      "id": "cmd-signal-doctor",
      "path": "signal doctor",
      "name": "doctor",
      "short": "Run local Signal CLI diagnostics",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal doctor\nsignal doctor --json",
      "flags": []
    },
    {
      "id": "cmd-signal-capabilities",
      "path": "signal capabilities",
      "name": "capabilities",
      "short": "Describe command capabilities for automation and audits",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal capabilities --json",
      "flags": []
    },
    {
      "id": "cmd-signal-schema",
      "path": "signal schema",
      "name": "schema",
      "short": "Print command input and output schemas",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal schema --json\nsignal schema auth.status --out --json",
      "flags": [
        {
          "name": "input",
          "type": "bool",
          "usage": "Show input schema for one command"
        },
        {
          "name": "out",
          "type": "bool",
          "usage": "Show output schema for one command"
        }
      ]
    },
    {
      "id": "cmd-signal-resolve",
      "path": "signal resolve",
      "name": "resolve",
      "short": "Resolve a local ref to its canonical provider value",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal resolve c1\nsignal resolve aci1\nsignal resolve me1 --json",
      "flags": []
    },
    {
      "id": "cmd-signal-version",
      "path": "signal version",
      "name": "version",
      "short": "Print build and license information",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "signal version",
      "flags": []
    }
  ]
}
