Decode a gRPC-Web request or response body into its frames and protobuf messages. Paste base64 or hex. Everything runs in your browser.
Each gRPC-Web frame is a 1-byte flag plus a 4-byte big-endian length, then the payload. Flag 0x00 is an uncompressed protobuf message (decoded inline), 0x01 is gzip-compressed (decompressed then decoded), and 0x80 is the trailer frame carrying grpc-status and other metadata. Handy when intercepting gRPC-Web traffic in a proxy.
Decode a gRPC-Web request or response body into its frames and protobuf messages. Paste base64 or hex. Runs entirely in your browser.
gRPC-Web is the browser-friendly variant of gRPC, sending length-prefixed protobuf frames over HTTP. When you capture this traffic in a proxy it looks like an opaque base64 blob, which makes testing and debugging gRPC-Web APIs awkward. This tool splits that body into its frames and decodes the protobuf payloads and trailer metadata, so you can read and analyse the messages.
Input:
AAAAAAkKBWhlbGxvECo= (base64 gRPC-Web body)
Output:
Frame 1 (data): #1 "hello", #2 42
Where do I get the body?
From a proxy like Burp or the browser dev tools, copy the raw gRPC-Web request or response body, usually shown as base64.
Does it need the .proto schema?
No. It decodes the protobuf wire format without a schema, showing field numbers, wire types and nested messages.
Can it read compressed and trailer frames?
Yes. Gzip-compressed frames are decompressed before decoding, and the trailer frame's grpc-status and metadata are shown as text.
Is anything uploaded?
No. Decoding runs entirely in your browser.