Paste your JSON object or sample payload into the input panel on the left.
Select the Protobuf syntax version — proto2 or proto3 — from the options panel.
Optionally configure the top-level message name, package name, and Go package option.
Click "Generate" or press ⌘↵ to produce the .proto schema.
Copy the generated .proto definition with ⌘⇧C and add it to your protobuf project.
Supports both proto2 and proto3 syntax with correct field rules (optional/required vs implicit presence)
Automatically maps JSON types to Protobuf scalar types: int32, int64, double, bool, string, and bytes
Generates nested message definitions for nested JSON objects, preserving structure hierarchy
Maps JSON arrays to repeated fields with inferred element type
Handles null/missing values by using optional fields in proto3 or optional keyword in proto2
Configurable top-level message name — defaults to the JSON root key or "Root"
Package declaration and Go package option generation for multi-language projects
Sequential field number assignment starting from 1, following protobuf conventions
Runs entirely in your browser — your JSON payload is never sent to any server
Keyboard shortcut ⌘↵ to generate, ⌘⇧C to copy the .proto output