{
  "slug": "protobuf-decode",
  "name": "gizza-ai/protobuf-decode",
  "version": "0.1.0",
  "title": "Protobuf Decoder — Decode Protobuf Wire Bytes Without a .proto — gizza.ai",
  "description": "Decode raw protobuf wire bytes (base64 or hex) into a field-number/wire-type tree — no .proto schema needed, nested messages recursed. Free, in your browser.",
  "tags": [
    "protobuf",
    "protocol buffers",
    "decode protobuf",
    "protobuf wire format",
    "grpc",
    "protobuf inspector",
    "no schema",
    "reverse engineering"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/protobuf-decode/",
    "markdown": "https://gizza.ai/tools/protobuf-decode/index.md",
    "descriptor": "https://gizza.ai/tools/protobuf-decode/tool.json",
    "deep_link_example": "https://gizza.ai/tools/protobuf-decode/?input=08%2096%2001&encoding=auto&format=json"
  },
  "cli": "gizza tool protobuf-decode \"08 96 01\"",
  "tool": {
    "description": "Decode raw Protocol Buffers (protobuf) wire bytes into a field-number / wire-type tree WITHOUT a .proto schema. Give the wire bytes as base64 or hex in 'input' (set encoding='auto' (default), 'base64', or 'hex'). Each field is reported by its field number, raw wire type (varint / fixed32 / fixed64 / length_delimited) and every plausible interpretation; length-delimited fields are recursively parsed as nested messages when they parse cleanly. Use format='json' (default) for a structured tree or 'text' for a compact outline.",
    "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' tree or 'text' outline.",
          "enum": [
            "json",
            "text"
          ],
          "type": "string"
        },
        "input": {
          "description": "The raw protobuf wire bytes, as a base64 or hex string.",
          "type": "string"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}