finds.dev← search

// the find

yoheimuta/protolint

★ 696 · Go · MIT · updated May 2026

A pluggable linter and fixer to enforce Protocol Buffer style and conventions.

protolint is a standalone linter and fixer for Protocol Buffer files (.proto) that runs without the protoc compiler. It enforces both the official Google style guide and configurable unofficial rules, with auto-fix support for most violations. Aimed at teams that write a lot of proto files and want automated style enforcement in CI without the overhead of a full protoc pipeline.

The `-fix` and `-auto_disable` flags together are genuinely useful for brownfield proto repos — you can migrate incrementally without breaking API compatibility by inserting disable comments instead of renaming fields. The plugin architecture via gRPC is well-thought-out: custom rules live in separate binaries, so the core tool stays stable. Editor and CI integration is broad (ALE, VS Code, IntelliJ, GitHub Actions, reviewdog, SARIF output for CodeQL/SonarQube). Running without protoc is a real time-saver — no need to wrangle protoc plugins or import paths just to check naming conventions.

696 stars for a tool that fills a real gap is surprisingly low, which suggests either low discoverability or teams defaulting to buf lint instead — and buf has caught up on most of these rules with a richer ecosystem. The MCP server feature feels bolted on and the demo GIF shows linting a single file via Claude Desktop, which is not a workflow anyone actually needs. The plugin protocol uses gRPC over a local socket, which is heavier than it needs to be for what amounts to a function call; adding a custom rule requires running a separate process. Proto Editions support (the successor to proto2/proto3 syntax) appears to be in early stages — the `editions.proto` example file exists but the rule table makes no mention of Editions-specific validation.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →