{
  "slug": "parse-websocket-frame",
  "name": "gizza-ai/parse-websocket-frame",
  "version": "0.1.0",
  "title": "WebSocket Frame Parser — Decode RFC 6455 Frames (FIN, Opcode, Mask, Payload) — gizza.ai",
  "description": "Decode a WebSocket frame (RFC 6455) from base64 or hex — FIN, RSV bits, opcode, mask flag, payload length, masking key, unmasked payload — in your browser.",
  "tags": [
    "websocket",
    "websocket frame",
    "rfc 6455",
    "ws frame",
    "frame decoder",
    "opcode",
    "masking key",
    "unmask payload",
    "web sockets"
  ],
  "category": "network",
  "urls": {
    "page": "https://gizza.ai/tools/parse-websocket-frame/",
    "markdown": "https://gizza.ai/tools/parse-websocket-frame/index.md",
    "descriptor": "https://gizza.ai/tools/parse-websocket-frame/tool.json",
    "deep_link_example": "https://gizza.ai/tools/parse-websocket-frame/?input=81%2005%2048%2065%206c%206c%206f&encoding=auto&format=json"
  },
  "cli": "gizza tool parse-websocket-frame \"81 05 48 65 6c 6c 6f\"",
  "tool": {
    "description": "Decode a WebSocket frame (RFC 6455) into its FIN bit, RSV1/2/3 reserved bits, opcode (numeric + human name), the MASK flag, the payload length, the 4-byte masking key (when present), and the unmasked payload bytes. Give the frame bytes as base64 or hex in 'input' (encoding='auto' (default), 'base64', or 'hex'). The output reports payload_hex always, payload_text (UTF-8) for text frames, and a {code, reason} object for close frames. Use format='json' (default) for a structured object or 'text' for a compact summary.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "encoding": {
          "default": "auto",
          "description": "How the input bytes are encoded.",
          "enum": [
            "auto",
            "base64",
            "hex"
          ],
          "type": "string"
        },
        "format": {
          "default": "json",
          "description": "Output shape: 'json' object or 'text' summary.",
          "enum": [
            "json",
            "text"
          ],
          "type": "string"
        },
        "input": {
          "description": "The WebSocket frame, as a base64 or hex byte string.",
          "type": "string"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}