skillfed

esbonio

A language server for sphinx/docutils based documentation projects.

esbonio v2.1.0 223.7K downloads/30d#9,241 on PyPI182
Permissive license MIT Active released

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 esbonio

uv

uv add esbonio

poetry

poetry add esbonio

Installing 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

Development Status :: 5 - Production/StableLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: DocumentationTopic :: Documentation :: Sphinx

Tags

language server reStructuredTextsphinx lsp editor supportrst documentation completiondocutils language serversphinx diagnostics linting
language-serverdocumentation-tooling

More Documentation packages