What is a .PROTO file?

It depends. 2 unrelated formats use the .proto extension, so the name alone cannot tell you what you have. The bytes can: each format below starts differently, and dropping the file on our detector settles it in a second without uploading anything.

Protocol buffer

Data · MIME type text/plain

How to recognise it: No signature; a protobuf message starts directly with a field tag..

Protocol buffer definition

Code · MIME type text/plain

Why one extension, several formats

Extensions are a convention, not a registry. Any program can claim any three or four letters, and when two did so independently, both stuck. Operating systems resolve the clash by file association, so a double-click opens whichever application last registered .proto, which may be the wrong one. Looking at the first bytes removes the guesswork: a format's signature is fixed by its specification, while its extension is whatever the file was last named.

Check it from a terminal

# macOS and Linux
xxd -l 16 file.proto
file file.proto

# Windows PowerShell
Format-Hex -Path file.proto -Count 16