griffe
Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API.
Decision gist · record as of 2026-08-14
Yes. Griffe is production-stable (Development Status 5), actively maintained, has no known vulnerabilities, and installs with low friction. It fills a clear niche in API documentation and breaking-change detection. Install it if you need to programmatically inspect Python code structure, generate API docs, or enforce API stability in CI.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Optional `pypi` extra needed to check packages directly from PyPI.
- Low install friction with a pure-Python wheel.
License · maintenance · safety
ISC (permissive) — ISC license is permissive and imposes minimal restrictions; you can use, modify, and distribute griffe freely in commercial and private projects.
last release 2026-06-19 (56 days) · last repo commit 2026-07-20 · 676 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 32,433,880 downloads/mo, #774 on PyPI
Alternatives
Verify before relying
pip install griffe
import griffe
fastapi = griffe.load("fastapi")
for breakage in griffe.find_breaking_changes(previous, current):
print(breakage)- Whether the CLI commands (griffe dump, griffe check) are documented with full option coverage in the fact sheet.
- Performance characteristics when analyzing large projects or many packages simultaneously.
- How griffe handles type annotations and stubs in its structural analysis.
What it is and what it does
Griffe is a static analysis tool that reads Python source code and builds a complete model of your program's structure—classes, functions, parameters, and their signatures. It exposes this model both as a Python API and through command-line tools, letting you programmatically inspect your codebase or dump it as JSON for downstream processing.
The primary use cases are API documentation generation (feeding structured data to doc tools) and breaking-change detection (comparing your current API against a previous version to flag incompatible modifications like parameter reordering or type changes). It supports loading packages from the local filesystem, Git history, or PyPI directly, making it flexible for both development workflows and CI/CD pipelines.
Use it for
- Generate structured API documentation by loading a package and serializing its signatures to JSON for consumption by doc generators.
- Detect breaking changes in your library's public API by comparing signatures between two versions before release.
- Automate API compliance checks in CI by running griffe check against your package to catch unintended signature changes.
- Build custom analysis tools by loading a Python package programmatically and traversing its structure with the Python API.
- Compare your current API against a previous PyPI release to identify what changed between versions.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Griffe is production-stable (Development Status 5), actively maintained, has no known vulnerabilities, and installs with low friction. It fills a clear niche in API documentation and breaking-change detection. Install it if you need to programmatically inspect Python code structure, generate API docs, or enforce API stability in CI.
Install
griffe on PyPI
Before you install
Low install friction with a pure-Python wheel. Actively maintained with a recent release; last commit on 2026-07-20 and 676 repository stars indicate steady development.
Requires Python 3.10 or later. Optional `pypi` extra needed to check packages directly from PyPI.
License in practice
ISC license is permissive and imposes minimal restrictions; you can use, modify, and distribute griffe freely in commercial and private projects.
Quickstart
pip install griffe
import griffe
fastapi = griffe.load("fastapi")
for breakage in griffe.find_breaking_changes(previous, current):
print(breakage)
Verify before relying
- Whether the CLI commands (griffe dump, griffe check) are documented with full option coverage in the fact sheet.
- Performance characteristics when analyzing large projects or many packages simultaneously.
- How griffe handles type annotations and stubs in its structural analysis.
Package facts
| License | ISC permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesgriffecligriffelib |
| Maintenance | Actively maintained 56 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 32,433,880 / month, #774 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersProgramming 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 :: Software DevelopmentTopic :: Software Development :: DocumentationTopic :: UtilitiesTyping :: Typed |
Evidence: griffe-2.1.0-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 › “extract python signatures”
- griffeGriffe extracts the complete structure and signatures of Python…
- mail-parser-replySplits incoming email messages into separate replies by detecting…
- cxxheaderparserParses C++ header files into Python data structures, extracting class…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also mkdocstrings-python · griffe2md · griffe-warnings-deprecated · griffe-typingdoc · griffe-pydantic · sigtools · skan · haystack-pydoc-tools · makefun · signify