sabledocs

What sabledocs is
sabledocs is a free, open-source static documentation generator for Protobuf and gRPC contracts. It runs from a command line and creates a static HTML site, including documentation for multiple packages in one build. The input is a binary Protobuf descriptor generated with protoc; comments appear when the descriptor includes source information. Search is enabled by default and can use a prebuilt Lunr index, while Markdown works in the main content page and Protobuf comments. The sabledocs.toml configuration file controls titles, input and output paths, package visibility, member ordering, comment filtering, and other generation options. Users can customize primary content with Jinja templates and add extra templates to the output. Configuration can also add links from Protobuf model members to GitHub, Bitbucket, Bitbucket Data Center, or GitLab repositories. The generated site is placed in sabledocs_output and 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.
Who it suits
sabledocs suits people generating and publishing reference documentation for Protobuf and gRPC contracts, including as part of CI builds. It is a command-line tool for teams comfortable preparing the required descriptor input.
What it does well
- Builds documentation for multiple packages together.
- Supports both Protobuf and gRPC contracts.
- Search is enabled by default.
- Jinja templates and configuration allow customization.
- Docker image includes protoc and Sabledocs.
What to know first
- Requires Python 3.11 or higher.
- Requires a binary descriptor generated with protoc.
- Comments require source information in the descriptor.
Limits
The plan is free. The package requires Python 3.11 or higher, and documentation builds need a binary Protobuf descriptor generated with protoc; comments also depend on `--include_source_info`.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Sabledocs | Open-source static generator · requires Python 3.11+ and a Protobuf descriptor file | Free |
As markvincze.github.io lists them, read 7 Oct 2026. The maker's own page has the final word.
Getting started
- Install the package with `pip install sabledocs`, or use the Docker image with protoc and Sabledocs preinstalled.
- Generate a binary Protobuf descriptor with protoc; include `--include_source_info` if the documentation should contain comments.
- Configure titles, paths, visibility, ordering, comment filtering, and other options in `sabledocs.toml` as needed.
- Run Sabledocs from the command line to generate the documentation site.
- Open `index.html` in the generated `sabledocs_output` directory.
Sabledocs is a command-line generator for static reference sites built from Protobuf and gRPC contracts. It fits teams that own their build and publication pipeline, especially those maintaining several packages. The trade-off is a capable, customizable documentation workflow that requires a protoc descriptor and Python 3.11 or newer.
Overview
Sabledocs converts a binary Protobuf descriptor into a static HTML site, writing the result to sabledocs_output for opening through index.html. Because the output is static and self-hosted, teams can publish it through their existing web or CI process without depending on a documentation service. That model is well suited to versioned contract references and automated builds, but it is not an interactive gRPC client and cannot replace software intended to call or inspect live services.
The input requirement is important. A descriptor must be generated with protoc, and Protobuf comments are included only when the generation command uses --include_source_info. Teams already producing descriptors can add Sabledocs cleanly; workflows without that step must change their build before useful comment-based documentation appears.
Key features
One site can cover multiple packages and combine Protobuf definitions with gRPC contracts. That gives organizations with broad or shared schemas a single reference destination instead of separate generated sites. Search is enabled by default through a prebuilt Lunr index, providing client-side navigation for the generated material without a hosted search backend.
Markdown is supported both on the main content page and inside Protobuf comments, allowing explanatory prose to sit alongside generated members. Configuration in sabledocs.toml controls titles, input and output paths, package visibility, member ordering, comment filtering, and other presentation choices. These controls are useful when the default API-reference layout does not match a project's publishing conventions.
Jinja templates can be replaced for primary content and supplemented with additional templates in the generated output. Source links can also be added for model members, with GitHub, Bitbucket, Bitbucket Data Center, and GitLab repository types supported. An advanced comment-processing hook accepts a custom Python parser, which helps teams impose their own comment rules but can make whitespace-sensitive formatting more difficult to manage.
Installation uses pip install sabledocs. A Docker image bundles both protoc and Sabledocs, reducing setup work when a reproducible container build is preferable. The Python 3.11-or-later requirement remains a meaningful constraint for older build environments.
Pricing
Sabledocs costs nothing under its open-source plan. The Sabledocs plan includes the open-source static generator and requires Python 3.11 or newer plus a Protobuf descriptor file. There are no seat charges, usage quotas, renewal terms, or trial conditions to weigh. This is a strong fit for individuals and teams comfortable running their own generation and hosting workflow; it does not provide a hosted service that would remove those operational responsibilities.
Platforms
Sabledocs runs on Linux, macOS, and Windows. Its self-hosted deployment model and Docker image make it practical for cross-platform local builds and CI environments, provided the build image or machine supplies the required Python version and descriptor-generation step.
Who it's for
Choose Sabledocs when your team publishes Protobuf or gRPC contracts and wants generated reference documentation under its own control. It is particularly appropriate for repositories with multiple packages, custom branding or layout requirements, source-code navigation needs, and CI-based publication. It is a poor match for readers seeking a graphical gRPC explorer, request runner, or hosted documentation platform, and less convenient for projects that cannot readily produce a descriptor with source information.
Pros and cons
Pros
- Free and open source: there is no subscription or seat cost for generating static contract documentation.
- Multi-package output: related Protobuf and gRPC contracts can be consolidated into one reference site.
- Useful customization: configuration, Jinja templates, extra templates, filtering, ordering, and source links support project-specific publishing standards.
- Built-in search: the default Lunr index improves navigation without a separate search service.
- Reproducible setup option: the Docker image includes both protoc and Sabledocs.
Cons
- Descriptor-dependent workflow: documentation starts with a binary descriptor generated by protoc, and comments require --include_source_info.
- Python 3.11-plus requirement: older build systems may need an environment upgrade.
- Self-hosted operation: teams must handle generation and publication rather than receiving a managed documentation site.
- Limited scope: it generates reference pages but is not a tool for invoking or testing gRPC services.
- Custom parser caveat: preprocessing comments can complicate whitespace-sensitive formatting.
Alternatives
For a broad comparison of related tools, see gRPC Tools.
Pick gRPC CLI instead when the priority is building from source and making unary RPC calls rather than generating static documentation.
grpcui is the better choice for an open-source, MIT-licensed interface that runs across desktop, web, and self-hosted environments.
Choose Kreya if an individual-focused free tier and a trial matter more than open-source licensing; its free plan limits request history to the latest request.
protoc-gen-doc suits users who want an MIT-licensed documentation generator with permissive use, modification, and distribution terms.
Consider ProtoCall for a free workspace-oriented app with GitHub imports and manually created workspaces.
Bandura offers a free tier for personal and commercial use without an account, with a separate one-time commercial licence.
Evans is an alternative when an open-source gRPC client, rather than generated reference pages, is the requirement.
Choose FintX for a free, open-source gRPC client with unlimited clients, request auto-save, import/export, method tabs, a JSON editor, and projects.
Verdict
Sabledocs is a strong choice for developers who need free, versionable Protobuf and gRPC reference sites generated in local or CI workflows. Its multi-package support, search, source links, and template controls justify choosing it when customization matters. Look elsewhere if you need live service interaction, a managed publishing platform, or a workflow that does not already accommodate protoc descriptors and Python 3.11 or later.
Verdict
sabledocs is a free, open-source option for generating customizable static contract documentation. Its workflow depends on a protoc-generated descriptor and Python 3.11 or later.
Questions
How much does Sabledocs cost?
The Sabledocs plan is free, and the pricing model is free.
Is Sabledocs open source?
Yes. The maker's site describes the project as open source, and the demo page describes it as free and open source.
What platforms does Sabledocs support?
The listed platforms are Linux, macOS, and Windows.
What does Sabledocs generate?
It generates a static HTML documentation site from a binary Protobuf descriptor made with protoc. It can document Protobuf and gRPC contracts across multiple packages.
What does Sabledocs require?
The package requires Python 3.11 or later and a binary Protobuf descriptor generated with protoc. Comments require the descriptor to include source information.
How do I install it?
The documented package installation command is `pip install sabledocs`. A Docker image is also available with protoc and Sabledocs preinstalled.
Facts from sabledocs's own pages
- Audience
- The documented workflow is for people generating and publishing reference documentation for Protobuf and gRPC contracts, including in CI builds. · markvincze.github.io, 7 Oct 2026
- 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. · markvincze.github.io, 4 Oct 2026
- Contract support
- It can combine Protobuf and gRPC contracts in generated documentation. · markvincze.github.io, 4 Oct 2026
- Customization
- Users can configure titles, input and output paths, package visibility, member ordering, comment filtering, and other generation options in sabledocs.toml. · markvincze.github.io, 7 Oct 2026
- Custom templates
- Users can configure Jinja templates for primary content and add extra templates to generated output. · markvincze.github.io, 4 Oct 2026
- Distribution
- The documentation instructs users to install the package with pip install sabledocs. · markvincze.github.io, 7 Oct 2026
- Docker
- A Docker image is available for CI and other workflows, with protoc and Sabledocs preinstalled. · markvincze.github.io, 7 Oct 2026
- Free and open source
- The demo page describes Sabledocs as free and open source. · markvincze.github.io, 4 Oct 2026
- Generation
- Sabledocs uses a command-line interface to generate static HTML documentation. · markvincze.github.io, 4 Oct 2026
- Input
- It builds documentation from a binary Protobuf descriptor generated with protoc, and comments require the --include_source_info flag to be included. · markvincze.github.io, 7 Oct 2026
- License and project status
- The maker’s site describes the project as open source. · markvincze.github.io, 7 Oct 2026
- Markdown
- Markdown is supported in the main content page and Protobuf comments, including fenced and indented code blocks. · markvincze.github.io, 7 Oct 2026
- Multiple packages
- It can build one documentation site for multiple packages. · markvincze.github.io, 4 Oct 2026
- Output
- The generator creates a documentation site in sabledocs_output that can be opened through index.html. · markvincze.github.io, 7 Oct 2026
- Prerequisite
- The package requires Python 3.11 or higher, and the build process uses a binary descriptor generated with protoc. · markvincze.github.io, 4 Oct 2026
- Purpose
- Sabledocs is a static documentation generator for Protobuf and gRPC contracts. · markvincze.github.io, 7 Oct 2026
- Runtime requirement
- The package requires Python version 3.11 or higher. · markvincze.github.io, 7 Oct 2026
- Search
- A prebuilt Lunr search index can be enabled or disabled through configuration and defaults to enabled. · markvincze.github.io, 7 Oct 2026
- Security
- The maker’s site does not state security certifications or compliance claims. · markvincze.github.io, 7 Oct 2026
- Source links
- Configuration can create links from documented Protobuf model members to source code repositories on GitHub, Bitbucket, Bitbucket Data Center, or GitLab. · markvincze.github.io, 7 Oct 2026
- Templates
- Jinja templates can be customized, and extra templates can be added to generated output. · markvincze.github.io, 7 Oct 2026
Where sabledocs stands on Freedom251
- gRPC Tools#20 of 24