sabledocs
markvincze.github.io
What it is
Sabledocs is a free, open-source command-line generator for static HTML documentation of Protobuf and gRPC contracts. It can create one documentation site for multiple packages and combine material for Protobuf and gRPC. The input is a binary descriptor generated with protoc; comments require the descriptor to include source information. Search is enabled by default and can use a prebuilt Lunr index, while Markdown is supported in the main content page and Protobuf comments. Configuration in sabledocs.toml covers items such as titles, paths, package visibility, member ordering, and comment filtering. Jinja templates can be customized for primary content, and extra templates can be added to the output. Users can configure source links for Protobuf model members in GitHub, Bitbucket, Bitbucket Data Center, and GitLab repositories. The generator writes the site to sabledocs_output, where it can be opened through index.html. Sabledocs requires Python 3.11 or higher and is installed with pip install sabledocs. A Docker image includes both protoc and Sabledocs.
Spec sheet
- Purpose
- Sabledocs is a static documentation generator for Protobuf and gRPC contracts.Read 7 Oct 2026 · markvincze.github.io
- Audience
- The documented workflow is for people generating and publishing reference documentation for Protobuf and gRPC contracts, including in CI builds.Read 7 Oct 2026 · markvincze.github.io
- Security
- The maker’s site does not state security certifications or compliance claims.Read 7 Oct 2026 · markvincze.github.io
- Comment parsing
- An advanced option lets users preprocess Protobuf comments with a custom Python parser; the page cautions that this may make whitespace-sensitive formatting harder.Read 4 Oct 2026 · markvincze.github.io
- Contract support
- It can combine Protobuf and gRPC contracts in generated documentation.Read 4 Oct 2026 · markvincze.github.io
- Custom templates
- Users can configure Jinja templates for primary content and add extra templates to generated output.Read 4 Oct 2026 · markvincze.github.io
- Customization
- Users can configure titles, input and output paths, package visibility, member ordering, comment filtering, and other generation options in sabledocs.toml.Read 7 Oct 2026 · markvincze.github.io
- Distribution
- The documentation instructs users to install the package with pip install sabledocs.Read 7 Oct 2026 · markvincze.github.io
- Docker
- A Docker image is available for CI and other workflows, with protoc and Sabledocs preinstalled.Read 7 Oct 2026 · markvincze.github.io
- Free and open source
- The demo page describes Sabledocs as free and open source.Read 4 Oct 2026 · markvincze.github.io
- Generation
- Sabledocs uses a command-line interface to generate static HTML documentation.Read 4 Oct 2026 · markvincze.github.io
- Input
- It builds documentation from a binary Protobuf descriptor generated with protoc, and comments require the --include_source_info flag to be included.Read 7 Oct 2026 · markvincze.github.io
- License and project status
- The maker’s site describes the project as open source.Read 7 Oct 2026 · markvincze.github.io
- Markdown
- Markdown is supported in the main content page and Protobuf comments, including fenced and indented code blocks.Read 7 Oct 2026 · markvincze.github.io
- Multiple packages
- It can build one documentation site for multiple packages.Read 4 Oct 2026 · markvincze.github.io
- Output
- The generator creates a documentation site in sabledocs_output that can be opened through index.html.Read 7 Oct 2026 · markvincze.github.io
- Prerequisite
- The package requires Python 3.11 or higher, and the build process uses a binary descriptor generated with protoc.Read 4 Oct 2026 · markvincze.github.io
- Runtime requirement
- The package requires Python version 3.11 or higher.Read 7 Oct 2026 · markvincze.github.io
- Search
- A prebuilt Lunr search index can be enabled or disabled through configuration and defaults to enabled.Read 7 Oct 2026 · markvincze.github.io
- Source links
- Configuration can create links from documented Protobuf model members to source code repositories on GitHub, Bitbucket, Bitbucket Data Center, or GitLab.Read 7 Oct 2026 · markvincze.github.io
- Templates
- Jinja templates can be customized, and extra templates can be added to generated output.Read 7 Oct 2026 · markvincze.github.io
Plans and prices
Strong points and limits
Strong points
- Generates static HTML for Protobuf and gRPC contracts.
- One build can cover multiple packages.
- Search is enabled by default.
- Docker image includes protoc and Sabledocs.
Limits
- Requires Python 3.11 or higher.
- Build input must be a binary Protobuf descriptor.
- Comments require source information in the descriptor.
Who it suits
It suits developers generating and publishing reference documentation for Protobuf and gRPC contracts, including as part of CI builds. Users need Python 3.11 or higher and a protoc-generated binary descriptor.
sabledocs in depth
Read the full write-up
Sabledocs turns Protobuf and gRPC contracts into static reference sites. It suits teams that want to generate and publish contract documentation from a local build or CI workflow. Its customization is useful, but the descriptor-based workflow and Python requirement narrow its fit.
Overview
This is a documentation generator, not a client for calling or testing gRPC services. It builds a static HTML site from a binary Protobuf descriptor, writing the result to sabledocs_output, where readers can open index.html. That output is straightforward to publish through a team’s existing process; teams that need interactive service access should look elsewhere.
The descriptor must come from protoc. Protobuf comments are included only when the descriptor is generated with --include_source_info, so teams need to preserve that option if comments are part of their reference material.
Key features
Sabledocs can bring Protobuf definitions and gRPC contracts from multiple packages into one site. Search is enabled by default and uses a prebuilt Lunr index, making it easier to navigate generated documentation without a hosted search service.
Markdown works in both the main content page and Protobuf comments. Configuration in sabledocs.toml covers titles, input and output paths, package visibility, member ordering, comment filtering, and other generation choices. These controls are useful when a team needs its reference site to reflect its own conventions rather than accept a fixed layout.
Jinja templates can be customized for primary content, and extra templates can add output files. Source links can also be configured for Protobuf model members, with support for GitHub, Bitbucket, Bitbucket Data Center, and GitLab. An advanced option preprocesses comments with a custom Python parser, though whitespace-sensitive formatting may become harder to manage.
The package requires Python 3.11 or higher. A Docker image comes with both protoc and Sabledocs preinstalled, which can reduce setup work for containerized builds. Installation is through pip install sabledocs.
Pricing
Sabledocs is free and open source. Its Sabledocs plan costs nothing and includes an open-source static generator; it requires Python 3.11 or higher and a Protobuf descriptor file. There are no paid tiers to choose between, so the trade-off is not price but whether the build prerequisites fit the team’s workflow.
Platforms
Sabledocs supports Linux, macOS, and Windows. It is self-hosted: the generator creates files for teams to publish through their own deployment process, rather than providing a hosted documentation service.
Who it's for
This is a good fit for developers and teams responsible for Protobuf and gRPC contracts who want reference documentation generated alongside code, including in CI builds. It is less suitable for readers seeking a general-purpose documentation platform, a hosted publishing service, or a tool to send gRPC requests.
Pros and cons
One site for multiple packages and contract types: teams can combine Protobuf and gRPC material rather than maintain separate references.
Useful presentation controls: Markdown, Jinja templates, configurable generation options, and repository source links let teams adapt the output to their documentation workflow.
Free and open source: there is no subscription cost for the generator.
Specific build prerequisites: teams need Python 3.11 or higher and a binary descriptor from protoc; comment documentation also depends on --include_source_info.
Not an interactive gRPC tool: its output is documentation, not a means to call or test services.
Alternatives
For a broader directory of tools in this area, browse gRPC Tools. Choose protoc-gen-doc if you want another free, MIT-licensed documentation generator for Protobuf. For making gRPC requests rather than producing static contract documentation, Kreya offers a free plan for individuals, with request history limited to the latest request, while FintX offers a free, open-source plan with unlimited gRPC clients and request import/export. Other options include grpcui, GripMock, gRPC CLI, grpcmd, and ProtoCall.
Verdict
Choose Sabledocs if you need free, configurable static documentation for Protobuf and gRPC contracts and can produce the required descriptor in a Python 3.11-or-higher workflow. Its multi-package output and template controls make it a focused option for teams publishing their own reference sites. Look elsewhere if your priority is calling services, or if the descriptor and runtime requirements do not fit your build process.
Verdict
Sabledocs provides configurable static documentation output for Protobuf and gRPC contracts. Its descriptor and Python requirements are important setup considerations.
Where Specifiction places it
- gRPC Tools#14 of 247.8