pyrefly
A fast type checker and language server for Python with powerful IDE features
What it is and what it does
Pyrefly is a production-grade type checker and language server for Python developed by Meta, designed to handle large codebases at scale. It combines fast type checking with IDE features like code navigation, autocomplete, hover information, and semantic highlighting, available both as a command-line tool and as extensions for VSCode, Neovim, Zed, and other editors. The package includes built-in support for popular frameworks like Pydantic, Django, and pytest.
For teams migrating from other type checkers, Pyrefly provides adoption tools: `pyrefly init` for migration setup, `pyrefly suppress` to silence existing errors during rollout, and `pyrefly infer` to generate type annotations. It has no runtime dependencies, making it straightforward to add to a project. The tool is actively maintained with monthly minor releases and patches for critical fixes.
Use it for:
- Migrate an existing codebase to Pyrefly using `pyrefly init` and suppress errors with `pyrefly suppress` during rollout
- Set up IDE type checking and code completion in VSCode, Neovim, or Zed with consistent results across CLI and editor
- Type-check large Python projects where type-checking speed is a bottleneck in development workflow
- Validate Pydantic models, Django ORM fields, and pytest fixtures with built-in framework support
- Generate initial type annotations for an untyped codebase using `pyrefly infer` to bootstrap type safety
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pyrefly is a fast type checker and language server for Python that provides IDE features including code navigation, semantic highlighting, and code completion across multiple editors.
Yes. Pyrefly is production-stable, actively maintained, has no dependencies, and offers a permissive license. It is worth installing if you need fast type checking for a large codebase or want IDE integration across multiple editors. The adoption tools make it practical to migrate incrementally. Minor version releases may introduce breaking changes, but the `suppress` command mitigates migration friction.
Install
pyrefly on PyPI
pip
pip install pyreflyuv
uv add pyreflypoetry
poetry add pyreflyInstalling pyrefly
Before you install
Medium install friction due to platform-specific wheels across multiple architectures (macOS, Linux, Windows, including ARM variants). Active maintenance with a release 13 days ago and no runtime dependencies simplifies deployment.
License in practice
MIT license (permissive) means you can use, modify, and distribute Pyrefly freely with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install pyrefly
pyrefly --help
# For IDE integration, install the appropriate extension (VSCode, Neovim, Zed, etc.) from your editor's marketplace
Requires Python 3.8 or later. IDE features require a compatible editor extension; the CLI tool works standalone.
Verify before relying
- Whether type-checking speed claims (1.85 million lines/second, 15x faster) are independently verified
- Compatibility matrix details for each supported IDE extension and minimum version requirements
- Whether monthly release cycle and non-strict semantic versioning means breaking changes occur frequently
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 13 days since the last release |
| First released | |
| Downloads | 6,610,816/month — #1,881 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyrefly-1.2.0-py3-none-macosx_10_12_x86_64.whl; pyrefly-1.2.0-py3-none-macosx_11_0_arm64.whl; pyrefly-1.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pyrefly-1.2.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl; pyrefly-1.2.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; pyrefly-1.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pyrefly-1.2.0-py3-none-musllinux_1_2_aarch64.whl; pyrefly-1.2.0-py3-none-musllinux_1_2_x86_64.whl; pyrefly-1.2.0-py3-none-win32.whl; pyrefly-1.2.0-py3-none-win_amd64.whl; pyrefly-1.2.0-py3-none-win_arm64.whl
Keywords: typechecker, typechecking
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
pyre-checkPysa is a static analysis tool that tracks data…
permissive · top 15,000 on PyPI
jedi-language-serverA Language Server Protocol implementation for…
permissive · top 15,000 on PyPI
tyA fast Python type checker and language server…
permissive · top 1,000 on PyPI
zubanZuban is a Rust-based Python language server…
agpl · top 15,000 on PyPI
pyrightPyright is a Python command-line wrapper that…
permissive · top 1,000 on PyPI
pyre-extensionsProvides typing extensions for the Pyre type…
permissive · top 5,000 on PyPI
types-dateparserProvides type stubs for the dateparser package,…
permissive · top 5,000 on PyPI
types-dockerProvides type hints for the docker package,…
permissive · top 5,000 on PyPI
types-braintreeProvides type hints for the braintree payment…
permissive · top 15,000 on PyPI
python-lsp-serverImplements the Language Server Protocol for…
permissive · top 5,000 on PyPI