esbonio
A language server for sphinx/docutils based documentation projects.
What it is and what it does
Esbonio is a Language Server Protocol server designed to bring IDE-like editing features to reStructuredText and Sphinx documentation projects. It runs as a background service that your editor connects to, providing real-time completion suggestions, error diagnostics, hover documentation, symbol navigation, and other language-aware features as you write documentation.
The server integrates with the docutils and Sphinx ecosystems, understanding the structure and semantics of reStructuredText markup. It depends on aiosqlite, platformdirs, pygls, tomli, websockets, and docutils to handle async database operations, configuration management, LSP protocol communication, and markup parsing. Installation via pipx is recommended to keep the server isolated from your project dependencies.
Use it for:
- Writing Sphinx documentation with real-time error checking and completion for roles, directives, and cross-references.
- Editing reStructuredText files in an IDE with hover tooltips and symbol search across documentation projects.
- Validating documentation syntax and catching common mistakes before building or publishing.
- Navigating large documentation hierarchies by jumping to definitions and finding symbol references.
- Authoring API documentation with Sphinx autodoc while receiving intelligent suggestions for markup patterns.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Language Server Protocol implementation for reStructuredText and Sphinx documentation projects, providing code completion, diagnostics, hover information, symbol navigation, and other IDE-like features for documentation editing.
Yes, if you work regularly with Sphinx or reStructuredText documentation and want IDE-like editing support. The package is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and integrates cleanly with modern editors via LSP. Install via pipx to avoid dependency conflicts with your projects.
Install
esbonio on PyPI
pip
pip install esboniouv
uv add esboniopoetry
poetry add esbonioInstalling esbonio
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a recent release (47 days old) and steady repository activity. Supports current Python versions (3.10–3.14).
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both personal and commercial projects.
Quickstart
pip install esbonio
Then configure your editor to use esbonio as the language server for .rst files. For example, in VS Code with the reStructuredText extension, point the server executable to the esbonio binary installed by pip.
Requires Python 3.10 or later. The language server must be integrated with an editor that supports the Language Server Protocol (LSP), such as VS Code, Neovim, or Emacs with appropriate LSP client support.
Verify before relying
- Specific editor integrations and configuration steps beyond the Getting Started guide documentation.
- Performance characteristics with large Sphinx projects or complex documentation hierarchies.
- Whether all Sphinx extensions are supported or if there are known limitations with certain extension types.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — aiosqlite, docutils, platformdirs, pygls, tomli, websockets |
| Maintenance | actively maintained — 47 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 223,708/month — #9,241 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: esbonio-2.1.0-py3-none-any.whl
Tags
More Documentation packages
Docutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
SphinxSphinx generates professional documentation…
permissive · top 1,000 on PyPI
griffeGriffe extracts the complete structure and…
permissive · top 1,000 on PyPI
sphinxcontrib-serializinghtmlA Sphinx extension that outputs documentation…
permissive · top 1,000 on PyPI
alabasterAlabaster is a clean, responsive Sphinx theme…
permissive · top 1,000 on PyPI
sphinxcontrib-htmlhelpA Sphinx extension that generates HTML help…
permissive · top 1,000 on PyPI
recommonmarkEnables Sphinx and Docutils projects to parse…
permissive · top 5,000 on PyPI
docstrfmtAutomatically formats reStructuredText in files…
permissive · top 15,000 on PyPI
jedi-language-serverA Language Server Protocol implementation for…
permissive · top 15,000 on PyPI
ruff-lspProvides a Language Server Protocol bridge to…
permissive · top 15,000 on PyPI
m2r2Converts markdown files with embedded…
permissive · top 15,000 on PyPI
pyglspygls is a Python framework for building…
permissive · top 5,000 on PyPI
rich-rstRenders reStructuredText documents as Rich…
permissive · top 1,000 on PyPI
sphinx_mdincludeSphinx extension that lets you include and…
permissive · top 15,000 on PyPI
xbslXBSL is a linter, LSP server, and metadata…
permissive · top 15,000 on PyPI