{
  "name": "wscat",
  "description": "Communicate over websocket",
  "options": [
    {
      "names": [
        "-c",
        "--connect"
      ],
      "description": "Connect to a WebSocket server",
      "args": [
        {
          "name": "url",
          "template": "history"
        }
      ]
    },
    {
      "names": [
        "-V",
        "--version"
      ],
      "description": "Output the version number"
    },
    {
      "names": [
        "--auth"
      ],
      "description": "Add basic HTTP authentication header (--connect only)",
      "dependsOn": [
        "-c",
        "--connect"
      ],
      "args": [
        {
          "name": "username:password"
        }
      ]
    },
    {
      "names": [
        "--ca"
      ],
      "description": "Specify a Certificate Authority (--connect only)",
      "dependsOn": [
        "-c",
        "--connect"
      ],
      "args": [
        {
          "name": "ca"
        }
      ]
    },
    {
      "names": [
        "--cert"
      ],
      "description": "Specify a Client SSL Certificate (--connect only)",
      "dependsOn": [
        "-c",
        "--connect"
      ],
      "args": [
        {
          "name": "cert"
        }
      ]
    },
    {
      "names": [
        "--host"
      ],
      "description": "Optional host",
      "args": [
        {
          "name": "host"
        }
      ]
    },
    {
      "names": [
        "--key"
      ],
      "description": "Specify a Client SSL Certificate's key (--connect only)",
      "dependsOn": [
        "-c",
        "--connect"
      ],
      "args": [
        {
          "name": "key"
        }
      ]
    },
    {
      "names": [
        "--max-redirects"
      ],
      "description": "Maximum number of redirects allowed (--connect only) (default: 10)",
      "dependsOn": [
        "-c",
        "--connect"
      ],
      "args": [
        {
          "name": "num"
        }
      ]
    },
    {
      "names": [
        "--no-color"
      ],
      "description": "Run without color"
    },
    {
      "names": [
        "--passphrase"
      ],
      "description": "Specify a Client SSL Certificate Key's passphrase (--connect only). If you don't provide a value, it will be prompted for",
      "dependsOn": [
        "-c",
        "--connect"
      ],
      "args": [
        {
          "name": "passphrase"
        }
      ]
    },
    {
      "names": [
        "--proxy"
      ],
      "description": "Connect via a proxy. Proxy must support CONNECT method",
      "args": [
        {
          "name": "[protocol://]host[:port]"
        }
      ]
    },
    {
      "names": [
        "--slash"
      ],
      "description": "Enable slash commands for control frames (/ping, /pong, /close [code [, reason]])"
    },
    {
      "names": [
        "-H",
        "--header"
      ],
      "description": "Set an HTTP header. Repeat to set multiple (--connect only) (default: [])",
      "dependsOn": [
        "-c",
        "--connect"
      ],
      "args": [
        {
          "name": "header:value"
        }
      ]
    },
    {
      "names": [
        "-L",
        "--location"
      ],
      "description": "Follow redirects (--connect only)",
      "dependsOn": [
        "-c",
        "--connect"
      ]
    },
    {
      "names": [
        "-l",
        "--listen"
      ],
      "description": "Listen on port",
      "args": [
        {
          "name": "port"
        }
      ]
    },
    {
      "names": [
        "-n",
        "--no-check"
      ],
      "description": "Do not check for unauthorized certificates"
    },
    {
      "names": [
        "-o",
        "--origin"
      ],
      "description": "Optional origin",
      "args": [
        {
          "name": "origin"
        }
      ]
    },
    {
      "names": [
        "-p",
        "--protocol"
      ],
      "description": "Optional protocol version",
      "args": [
        {
          "name": "protocol"
        }
      ]
    },
    {
      "names": [
        "-P",
        "--show-ping-pong"
      ],
      "description": "Print a notification when a ping or pong is received"
    },
    {
      "names": [
        "-s",
        "--subprotocol"
      ],
      "description": "Optional subprotocol (default: [])",
      "args": [
        {
          "name": "protocol",
          "suggestions": [
            "MBWS.huawei.com",
            "MBLWS.huawei.com",
            "soap",
            "wamp",
            "v10.stomp",
            "v11.stomp",
            "v12.stomp",
            "ocpp1.2",
            "ocpp1.5",
            "ocpp1.6",
            "ocpp2.0",
            "ocpp2.0.1",
            "rfb",
            "sip",
            "notificationchannel-netapi-rest.openmobilealliance.org",
            "wpcp",
            "amqp\t",
            "mqtt",
            "jsflow",
            "rwpcp",
            "xmpp",
            "ship",
            "mielecloudconnect",
            "v10.pcp.sap.com",
            "msrp",
            "v1.saltyrtc.org",
            "TLCP-2.0.0.lightstreamer.com",
            "bfcp",
            "sldp.softvelum.com",
            "opcua+uacp",
            "opcua+uajson",
            "v1.swindon-lattice+json",
            "v1.usp",
            "mles-websocket",
            "coap",
            "TLCP-2.1.0.lightstreamer.com",
            "sqlnet.oracle.com",
            "oneM2M.R2.0.json",
            "oneM2M.R2.0.xml",
            "oneM2M.R2.0.cbor",
            "transit",
            "2016.serverpush.dash.mpeg.org",
            "2018.mmt.mpeg.org",
            "clue",
            "webrtc.softvelum.com",
            "cobra.v2.json",
            "drp",
            "hub.bsc.bacnet.org",
            "dc.bsc.bacnet.org",
            "jmap",
            "t140",
            "done",
            "TLCP-2.2.0.lightstreamer.com",
            "collection-update",
            "TLCP-2.3.0.lightstreamer.com",
            "text.ircv3.net",
            "binary.ircv3.net",
            "v3.penguin-stats.live+proto"
          ]
        }
      ]
    },
    {
      "names": [
        "-w",
        "--wait"
      ],
      "description": "Wait given seconds after executing command",
      "args": [
        {
          "name": "seconds"
        }
      ]
    },
    {
      "names": [
        "-x",
        "--execute"
      ],
      "description": "Execute command after connecting",
      "args": [
        {
          "name": "command"
        }
      ]
    },
    {
      "names": [
        "-h",
        "--help"
      ],
      "description": "Display help for command"
    }
  ]
}
