A fast type checker and language server for Python with powerful IDE features
Project description
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.
Pyrefly's current development status is stable.
Key Features
- 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 like Pydantic and Django, with model validation, field types, and autocomplete that work out of the box.
- Adoption-ready. Migrate from Mypy or Pyright with
pyrefly init, silence existing errors withpyrefly suppress, and generate type annotations withpyrefly infer. Start with one file and expand at your own pace.
Getting Started
- Try out pyrefly in your browser: Sandbox
- Get the command-line tool:
pip install pyrefly - Get the IDE Extension: IDE installation page
Version Policy
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.
See our contributing guide and architecture overview for information on how to contribute to Pyrefly.
Join our Discord to chat about Pyrefly and types. This is also where we hold biweekly office hours.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyrefly-1.0.0.tar.gz.
File metadata
- Download URL: pyrefly-1.0.0.tar.gz
- Upload date:
- Size: 5.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c2b810ffcebd84be71de5df1223651edee951653a66935c6f091e957c452455
|
|
| MD5 |
dcbd9ca45425eedc5d9bf20d3e965090
|
|
| BLAKE2b-256 |
9f3a9045b0097ac58979c7c30a4fa0e673db942d4adbc7b6d439bd54ae58c441
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0.tar.gz:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0.tar.gz -
Subject digest:
5c2b810ffcebd84be71de5df1223651edee951653a66935c6f091e957c452455 - Sigstore transparency entry: 1520407913
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyrefly-1.0.0-py3-none-win_arm64.whl.
File metadata
- Download URL: pyrefly-1.0.0-py3-none-win_arm64.whl
- Upload date:
- Size: 12.5 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d150fa9e40e8392832be81c3bcfc0497c146674ce4d0f8e04e1ec29e775ffb8c
|
|
| MD5 |
50c8cb4de0d5229e1f64e668b13be61b
|
|
| BLAKE2b-256 |
8c3816589134f3012fd097a10dcc85771555f1a5fb76e04b682597180743af30
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0-py3-none-win_arm64.whl:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0-py3-none-win_arm64.whl -
Subject digest:
d150fa9e40e8392832be81c3bcfc0497c146674ce4d0f8e04e1ec29e775ffb8c - Sigstore transparency entry: 1520408121
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyrefly-1.0.0-py3-none-win_amd64.whl.
File metadata
- Download URL: pyrefly-1.0.0-py3-none-win_amd64.whl
- Upload date:
- Size: 13.1 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8abcb0f2082e83c890375128f9cff4aa4d3f210b85eea7b3046c1ae764e77f5
|
|
| MD5 |
b101b8a3705fcdc55fb8d0688e44ca9d
|
|
| BLAKE2b-256 |
bead1d23be700b6b2ddaeb362360c7145917a8edbbf7240ae428d40541772fce
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0-py3-none-win_amd64.whl:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0-py3-none-win_amd64.whl -
Subject digest:
c8abcb0f2082e83c890375128f9cff4aa4d3f210b85eea7b3046c1ae764e77f5 - Sigstore transparency entry: 1520407939
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyrefly-1.0.0-py3-none-win32.whl.
File metadata
- Download URL: pyrefly-1.0.0-py3-none-win32.whl
- Upload date:
- Size: 12.2 MB
- Tags: Python 3, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa8b5d0e47080e3202a2547b39f7a5a61d2c781c712b3b67884f745ca2c759d2
|
|
| MD5 |
2dd522871ece5ae224b55a62443dbf1f
|
|
| BLAKE2b-256 |
cb2b6372c7dddb326223e24a46b17efd0d4bd7b4fe22c821e523157577eed2d2
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0-py3-none-win32.whl:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0-py3-none-win32.whl -
Subject digest:
aa8b5d0e47080e3202a2547b39f7a5a61d2c781c712b3b67884f745ca2c759d2 - Sigstore transparency entry: 1520408039
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyrefly-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pyrefly-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 13.5 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1382d5b1fcdb49a4de9f34d112d2bddf290a78ff93ee8149492ad5f1077ddffc
|
|
| MD5 |
a4cf0903e81e029b1ef73e8ce04bfd2e
|
|
| BLAKE2b-256 |
6116cfa2d61a4aa1e1f7bca48bb37acd01c6a09db4864b16a54f9587092765ff
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
1382d5b1fcdb49a4de9f34d112d2bddf290a78ff93ee8149492ad5f1077ddffc - Sigstore transparency entry: 1520408005
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyrefly-1.0.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: pyrefly-1.0.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 13.9 MB
- Tags: Python 3, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0d05543b1bb6ee6d64149eb5d6b2fb15aa72d3962d6a97abca0afaca8b0c131
|
|
| MD5 |
b7055c3801c3373df0337ded0bb8b93f
|
|
| BLAKE2b-256 |
6b3eb247c24321e36f04b7d51f9ccf3df93e5009e4b29939524b36ec2e17dc2a
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl -
Subject digest:
c0d05543b1bb6ee6d64149eb5d6b2fb15aa72d3962d6a97abca0afaca8b0c131 - Sigstore transparency entry: 1520407924
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyrefly-1.0.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pyrefly-1.0.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 13.9 MB
- Tags: Python 3, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c74219d8f3e63cdaa5501a0b21d1c9d37011820f9606728d0ed06f09ae86a878
|
|
| MD5 |
0f8551c33492327550505e8a613d7b84
|
|
| BLAKE2b-256 |
7cac2df0899f8464c97e5d995f994c97c5cb5b0f58610432aa90d26d924e1db5
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
c74219d8f3e63cdaa5501a0b21d1c9d37011820f9606728d0ed06f09ae86a878 - Sigstore transparency entry: 1520407956
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyrefly-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: pyrefly-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 13.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da331ca515ed1c08791da2b5f664cf9c1294c48fd802133262e7d5d51e0f4416
|
|
| MD5 |
cd6d79371ee01e3884e97422c5df5fe0
|
|
| BLAKE2b-256 |
cdab74d1e11e737e99b1c003ecc5d7d2e846c4ea1f328966bfdbbd0ac63fad0a
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
da331ca515ed1c08791da2b5f664cf9c1294c48fd802133262e7d5d51e0f4416 - Sigstore transparency entry: 1520408073
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyrefly-1.0.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyrefly-1.0.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 12.6 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7038efc3a40f8294edee339895633cf22db268c0d434cdbcbefc34f78a9ecc3
|
|
| MD5 |
f963771bc775d4e82f6f92973e520c46
|
|
| BLAKE2b-256 |
8291a3cf2a1e87d336eaa804a1e6fc93266faf6dc2a97eecdbc7eae289628022
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0-py3-none-macosx_11_0_arm64.whl:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0-py3-none-macosx_11_0_arm64.whl -
Subject digest:
a7038efc3a40f8294edee339895633cf22db268c0d434cdbcbefc34f78a9ecc3 - Sigstore transparency entry: 1520407977
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyrefly-1.0.0-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pyrefly-1.0.0-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 13.1 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e355a0908555348ed4b9585ef25c76ff566673e345c866c325f1633f44d890b6
|
|
| MD5 |
d456b90e6eb5709c45e35f7f078a1a28
|
|
| BLAKE2b-256 |
f4c690788819bac9c61dd7bacba53b79f3c12d47ccbe5e51b3d6d89f2387e1d2
|
Provenance
The following attestation bundles were made for pyrefly-1.0.0-py3-none-macosx_10_12_x86_64.whl:
Publisher:
publish_to_pypi.yml on facebook/pyrefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyrefly-1.0.0-py3-none-macosx_10_12_x86_64.whl -
Subject digest:
e355a0908555348ed4b9585ef25c76ff566673e345c866c325f1633f44d890b6 - Sigstore transparency entry: 1520408097
- Sigstore integration time:
-
Permalink:
facebook/pyrefly@2362c071caa576f9112781b5571f9e283cd52920 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/facebook
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@2362c071caa576f9112781b5571f9e283cd52920 -
Trigger Event:
workflow_dispatch
-
Statement type: