Pyrefly is a type checker and language server for Python, which provides lightning-fast type checking along with IDE features such as code navigation, semantic highlighting, and code completion. It is available as a command-line tool and an extension for popular IDEs and editors such as VSCode, Neovim, Zed, and more.
README
Pyrefly: A fast type checker and language server for Python with powerful IDE features
Pyrefly is a type checker and language server for Python, which provides
lightning-fast type checking along with IDE features such as code navigation,
semantic highlighting, and code completion. It is available as a
command-line tool and an extension
for popular IDEs and editors such as
VSCode,
Neovim,
Zed, and
more.
See the Pyrefly website for full documentation and how to
add Pyrefly to your editor of choice.
Fast. Pyrefly checks over 1.85 million lines of code per second, type checking projects like PyTorch 15x faster than Mypy and Pyright. In the IDE, rechecks typically complete in under 10 milliseconds after saving a file.
Production-proven at scale. Pyrefly is the default type checker for Instagram's 20-million-line Python codebase at Meta, and has been adopted by large open source projects including PyTorch and JAX.
Full-featured language server. Code navigation, autocomplete, hover information, inlay hints, semantic highlighting, and more, with consistent results across the CLI and your editor of choice.
Understands real-world Python. Built-in support for frameworks and tools like Pydantic, Django, and pytest, with model validation, field types, fixture navigation, and autocomplete that work out of the box.
Adoption-ready. Migrate from Mypy or Pyright with pyrefly init, silence existing errors with pyrefly suppress, and generate type annotations with pyrefly infer. Start with one file and expand at your own pace.
Pyrefly releases new minor versions (1.x.0) monthly and patch versions in between
as-needed for critical fixes. Pyrefly does not follow strict semantic versioning:
minor versions contain more significant changes than patch versions, but any
version may introduce new type errors and other breaking changes. The
pyrefly suppress command can be used
to easily silence errors when upgrading to a new version.
Getting Involved
If you have questions or would like to report a bug, please
create an issue.