pydoctor
API doc generator.
Decision gist · record as of 2026-08-14
Yes. pydoctor is mature, actively maintained, has no known vulnerabilities, and installs cleanly. It solves a real problem (epydoc replacement with zope.interface support) and is the right choice if you need static API doc generation, especially for Twisted-adjacent projects or if you're migrating from epydoc. The broad docstring format support and modern Python compatibility make it suitable for most new projects.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; project source must be discoverable via static analysis.
- Low install friction with a pure-wheel distribution.
- Actively maintained with recent commits and no known vulnerabilities.
License · maintenance · safety
MIT/X11 (permissive) — MIT/X11 permissive license allows use in both open-source and proprietary projects with minimal restrictions.
last release 2025-09-29 (319 days) · last repo commit 2026-06-21 · 223 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 110,549 downloads/mo, #12,453 on PyPI
Alternatives
Verify before relying
pip install pydoctor
pydoctor --html-output=docs/api src/mylib- Whether the package handles all zope.interface patterns correctly in practice
- Performance characteristics on very large codebases
- Completeness of C-module introspection support beyond data descriptors
What it is and what it does
pydoctor is a standalone API documentation generator that builds reference docs by parsing Python source code without executing it. It was created to replace epydoc for the Twisted project, particularly to handle zope.interface declarations that epydoc struggled with. The tool performs static analysis to resolve imports, compute inheritance hierarchies, and understand interface implementations.
It supports five docstring markup formats—epytext (the default), reStructuredText, Google style, Numpy style, and plaintext—letting you choose the format that fits your project. pydoctor can generate HTML output with multiple theme options, integrates with Sphinx via intersphinx for cross-linking to external docs, and handles modern Python features including namespace packages (PEP 420) and generic types. Recent versions added support for doc-comments (Sphinx-style `#:` comments) and improved C-module introspection.
Use it for
- Generate API docs for Twisted-like projects that use zope.interface heavily
- Migrate from epydoc to a Python 3-native documentation tool without rewriting docstrings
- Build searchable HTML API reference for a library with multiple docstring styles across modules
- Integrate API docs into a Sphinx project using intersphinx for unified cross-linking
- Document namespace packages and modern Python code structures that older tools don't handle
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
pydoctor is mature, actively maintained, has no known vulnerabilities, and installs cleanly. It solves a real problem (epydoc replacement with zope.interface support) and is the right choice if you need static API doc generation, especially for Twisted-adjacent projects or if you're migrating from epydoc. The broad docstring format support and modern Python compatibility make it suitable for most new projects.
Install
pydoctor on PyPI
Before you install
Low install friction with a pure-wheel distribution. Actively maintained with recent commits and no known vulnerabilities. Supports Python 3.9 through 3.14 and PyPy, with mature status and over a decade of development history.
Requires Python 3.9 or later; project source must be discoverable via static analysis.
License in practice
MIT/X11 permissive license allows use in both open-source and proprietary projects with minimal restrictions.
Quickstart
pip install pydoctor
pydoctor --html-output=docs/api src/mylib
Verify before relying
- Whether the package handles all zope.interface patterns correctly in practice
- Performance characteristics on very large codebases
- Completeness of C-module introspection support beyond data descriptors
Package facts
| License | MIT/X11 permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 10 packagesplatformdirsCacheControlTwistedurllib3requestsattrsdocutilslunrconfigargparsetomli |
| Maintenance | Actively maintained 319 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 110,549 / month, #12,453 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 6 - MatureIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: DocumentationTopic :: Software Development :: Documentation |
Evidence: pydoctor-25.10.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “static analysis doc tool”
- pydoctorpydoctor generates API documentation from Python source code through…
- griffe2mdGenerates Markdown API documentation from Python packages using…
- griffeGriffe extracts the complete structure and signatures of Python…
Give your agent the search over MCP, or paste the wish link into any chat.
More Documentation packages
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
Sphinx generates professional documentation from reStructuredText source files, producing HTML, PDF, EPUB, and other formats with automatic cross-references, code highlighting, and hierarchical navigation.
Griffe extracts the complete structure and signatures of Python programs to generate API documentation or detect breaking changes in your project's public API.
Install it if you need to programmatically inspect Python code structure, generate API docs, or enforce API stability in CI.
A Sphinx extension that outputs documentation in serialized HTML formats (JSON and pickle) alongside standard HTML.
Alabaster is a clean, responsive Sphinx theme for documentation that requires Python 3.10 or newer and Sphinx 6.2 or newer.
A Sphinx extension that generates HTML help files from reStructuredText documentation source.
See also docstring-parser · numpydoc · docstring-parser-fork · pdoc3 · pytkdocs · docstring-to-markdown · mkdocstrings-python · haystack-pydoc-tools