NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1338 most downloaded on PyPI
A fast type checker and language server for Python with powerful IDE features
Last release 2 days ago
02 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Most releases are documented
notes for 39 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
150 releases · first in 2025
One column per month.
Nothing published for this version
pyrefly v0.28 bundles 119 commits from 20 contributors. This release introduces new features related to function and class metadata, improves class ba
pyrefly v0.28 bundles 119 commits from 20 contributors. This release introduces new features related to function and class metadata, improves class base type calculations, enhances import finding logic, and addresses several bug fixes related to LSP behavior, error reporting, and type inference.
| Area | What’s new |
|---|---|
| Type Checker | Export function information including names and locations, enabling Pysa to use pyrefly's function list for consistency.Add parent information to functions and classes to facilitate unique fully qualified name generation in Pysa.Introduce function flags (e.g., is_overload, is_classmethod) for richer metadata. |
| Class Metadata & Type Inference | Support Pydantic metadata by adding it to class metadata. |
| Import Resolution | Implement preference for .pyi files over .py over .pyc files in import finding, even if the import occurs later in the includes list. This is particularly useful for go-to-definition in the LSP, preferring implementation files over interfaces. |
| Error Reporting | Add a check for unused coroutines, similar to pyright and mypy, to flag coroutines that are not awaited, passed to a function, or assigned to a variable. |
| LSP | Improvements to LSP shutdown behavior, ensuring the language server exits gracefully on connection close and removing previous workarounds for exit notifications. |
| Configuration | Add support for ignore files (.gitignore, .ignore, .git/exclude) with a config (use-ignore-files) to enable and disable their use. |
| Website Sandbox | Added a dropdown to select the Python version in the sandbox, allowing users to test against different Python versions (3.8-3.12). |
If you are using Pyrefly in your CI processes, the following changes may cause your CI to break when upgrading to the new version of Pyrefly
To upgrade to the latest version of Pyrelfy, run the following terminal command:
pip install --upgrade pyrefly==0.28
Thank-you to all our wonderful contributors!
Aaron Pollack, Abby Mitchell, Adist319, Carlos Fernandez, Conner Nilsen, Danny Yang, Doğaç Eldenk, Fangyi Zhou, Jia Chen, Kyle Into, Maggie Moss, Maxime Arthaud, Neil Mitchell, Rebecca Chen, Rubmary Rojas, Sam Goldman, Sam Zhou, Xavi Simpson, Zeina Migeed
Nothing published for this version
Nothing published for this version
Pyrefly 0.27.0 bundles 212 commits from 20 contributors
Status: ALPHA
Release date: 2025-08-04
Pyrefly 0.27.0 bundles 212 commits from 20 contributors
Typechecking
except clauses.x: int) are no longer always assumed uninitialized.UsageLink ranges by using YieldLink for yield calculations.__path__ to MutableSequence.IDE
__new__/__init__ calls are treated as overloads.cls arguments are removed from completion and signature help.displayName in package.json.Misc.
pip install --upgrade pyrefly==0.27.0
@stroxler @fangyi-zhou @rubmary @kinto0 @grievejia @rchen152 @ndmitchell @aahanaggarwal @javabster @connernilsen @migeed-z @SamChou19815 @yangdanny97
Full Changelog: https://github.com/facebook/pyrefly/compare/0.26.0..0.27.0
Nothing published for this version
Warn on calling deprecated overloads.
Status: ALPHA
Release date: 2025-07-28
Pyrefly 0.26.0 bundles 179 commits from 24 contributors
pip install --upgrade pyrefly==0.26.0
@grievejia @samwgoldman @stroxler @rchen152 @fangyi-zhou @ndmitchell @rubmary @kinto0 @arthaud @lolpack @migeed-z @darricklaidin @connernilsen @regexyl @danielocfb @WeixiMa @MaggieMoss @yangdanny97
Full Changelog: https://github.com/facebook/pyrefly/compare/0.25.0..0.26.0
Nothing published for this version
Warn on deprecated method calls and overloaded calls.
Status: ALPHA
Release date: 2025-07-22
Pyrefly 0.25.0 bundles 307 commits from 19 contributors
typing.Self.ignore_missing_imports in Pyrefly config.TypedDict initialization & makeself positional-only.pip install --upgrade pyrefly==0.25.0
@rchen152 @stroxler @ndmitchell @yangdanny97 @arthaud @kinto0 @connernilsen @SamChou19815 @rubmary @dluo @migeed-z @samwgoldman @fangyi-zhou @LyricalToxic @melvinhe @grievejia @lolpack
Full Changelog: https://github.com/facebook/pyrefly/compare/0.24.2...0.25.0
Pyrefly 0.24.2 bundles 290 commits from 26 contributors
Status: ALPHA
Release date: 2025-07-15
Pyrefly 0.24.2 bundles 290 commits from 26 contributors
type() and bool() for narrowing, and the behavior for match statements w/ class patternsdataclass_transform--error, --warn, --ignore) and improved error message clarity.float * bool and complex * bool.--typeshed-path CLI flag for custom typeshed modifications and improved config handling logic.pip install --upgrade pyrefly==0.24.2
@ndmitchell, @yangdanny97, @stroxler, @rchen152, @migeed-z, @connernilsen, @dluo, @MaggieMoss, @rubmary, @xaskii, @kinto0, @grievejia, @SamChou19815, @melvinhe, @lianne, @krikera, @dluo, @Abel981, @fangyi-zhou, @Alex-Aron, @zpao, @slawlor, @diliop, @arnav-jain1, @samwgoldman
Nothing published for this version
Nothing published for this version
Nothing published for this version
Status: ALPHA *Release date: 2025-07-07*
Status: ALPHA
Release date: 2025-07-07
Pyrefly 0.23.0 bundles 186 commits from 24 contributors. This release introduces significant improvements in type checking, configuration handling, and error management.
pip install --upgrade pyrefly==0.23.0
@aahanaggarwal, @yangdanny97, @stroxler, @rchen152, @dluo, @ndmitchell, @connernilsen, @xaskii, @melvinhe, @migeed-z, @TheRustyPickle, @arnav-jain1, @InSyncWithFoo, @rubmary, @arthaud, @samwgoldman, @grievejia, @danielocfb-test, @MaggieMoss, @DavidTolnay, @JunHao, @darricklaidin, @kinto0
Nothing published for this version
Nothing published for this version
Pyrefly 0.22.0 bundles 216 commits from 23 contributors. This release includes significant improvements in type checking and performance enhancements.
Status : ALPHA
Release date: 30 Jun 2025
Pyrefly 0.22.0 bundles 216 commits from 23 contributors. This release includes significant improvements in type checking and performance enhancements.
| Area | What’s new |
|---|---|
| Type Checking | Implemented support for functools.total_ordering, allowing automatic generation of rich comparison methods. |
| IDE / LSP | Added support for textDocument/rename and textDocument/prepareRename in LSP. |
| Configuration | Introduced CLI flag for --conda-environment to manage Python environments more effectively. |
NamedTuple field ordering and TypedDict method synthesis.type[tuple] can now be used as a tuple constructorstr, not just literals.pip install --upgrade pyrefly==0.22.0
@Adist319, @adsi7698, @bigfootjon, @connernilsen, @CookieComputing, @dluo, @facebook-github-bot, @fangyi-zhou, @grievejia, @iwakitakuma33, @kinto0, @krathul, @melvinhe, @migeed-z, @ndmitchell, @pt2302, @rchen152, @SamChou19815, @stroxler, @vagabond-0, @xaskii, @yangdanny97, @zsol
https://github.com/facebook/pyrefly/releases
Full Changelog: https://github.com/facebook/pyrefly/compare/0.21.0...0.22.0
Status : ALPHA *Release date: 23 June 2025*
Status : ALPHA
Release date: 23 June 2025
Pyrefly 0.21.0 delivers 176 commits from 20 contributors. We now support a number of highly requested features such as Semantic Highlighting, Signature Help, Document Highlights and Auto Import Completions! Follow along for more LSP functionality #344 ahead of our V1 release.
| Area | What’s new |
|---|---|
| IDE / LSP (Issue #344) | • Richer semantic highlighting – method calls, property accesses, and the expressions nested in them now get distinct token types, so editors like VS Code underline exactly what you expect (#344).<br>• Added the defaultLibrary semantic-token modifier for symbols originating from builtins, typing, or typing_extensions; makes built-ins stand out in both dark/light themes. |
| Diagnostics | • Detailed override errors – incompatibilities between a subclass attribute and its parent now explain why they don’t match (“read-write vs read-only”, “int vs str”, etc.) on a second indented line. |
| Type-system smarts | • InitVar fields in @dataclass definitions are no longer treated as instance attributes, eliminating false “missing attribute” errors (PR [#437]). <br> • Full support for Variance Inference in Generic Classes with PEP 695 |
| Performance | • A pathological Callable | … union test that once blew up exponentially now checks in linear time. |
defaultLibrary modifier.pip install --upgrade pyrefly==0.21.0
@yangdanny97 @Adist319 @grievejia @connernilsen @migeed-z @ndmitchell @xl4624 @stroxler @rchen152 @TheRustyPickle @dluo @kinto0 @pt2302 @SamChou19815 @ducdetronquito @xaskii @Alex-Aron @hugovk @grantlouisherman @rubmary
Nothing published for this version
Nothing published for this version
Status : ALPHA *Release date: 16 June 2025*
Status : ALPHA
Release date: 16 June 2025
Pyrefly 0.20.0 represents 165 commits from 21 contributors and focuses on stability, friendlier diagnostics, and CLI quality-of-life.
Special thanks to @TheRustyPickle, @ducdetronquito, @pt2302, @akmalsoliev and every reviewer, tester and bug-reporter who helped make this release!
| Area | What’s new |
|---|---|
| Diagnostics & error messages | •We now print a snippet of source code in each message, highlighting the error location. You can control error message verbosity with the new --output-format=min-text and --output-format=full-text options.<br> •Add tests to keep Error Kinds in sync with documentation, in addition to reclassifying Error Kinds previously reported as Unknown (#477).<br>• Import errors are now shown on separate lines with source hints, thanks to the new BindingsBuilder::error_multiline helper (commit 2bba00f).<br>•TypeVar reveal output is shorter and clearer – no more variance=PInvariant noise (#225). |
| Editor support | •Basic support for Semantic Highlighting, a highly requested feature (#218). More improvements to come in future releases. |
| Configuration / CLI | • New flags --replace-imports-with-any and --ignore-missing-source let you suppress noisy import errors without editing config files (#480 → closes #460 & #462). |
| Type-system smarts | • Conflicting Required/NotRequired qualifiers in a single TypedDict field now surface an explicit error (#447→ fixes #414). |
| Project workflow | • pyrefly init edits an existing pyproject.toml in-place instead of appending duplicate [tool.pyrefly] sections (#336). |
--python-version 3.9 (#56).pyrefly check --help or grep error kinds.TypedDict qualifier rule (#447) may surface new errors where both Required and NotRequired were previously accepted.pip install --upgrade pyrefly==0.20.0
🖊️ Contributors in this release
@rchen152, @grievejia, @stroxler, @ajaymiranda, @connernilsen, @pt2302, @kinto0, @yangdanny97, @ndmitchell, @migeed-z, @hugovk, @dtolnay, @Alex-Aron, @Adist319, @zachmullen, @grantlouisherman, @rubmary, @dluo, @MaggieMoss, @kinto0, @SamChou19815
Nothing published for this version
Nothing published for this version
Pyrefly 0.19.0 packs a week’s worth of fixes and quality‑of‑life improvements into 128 commits from 19 contributors, touching 153 files.
Status : ALPHA
Release date: 9 June 2025
Pyrefly 0.19.0 packs a week’s worth of fixes and quality‑of‑life improvements into 128 commits from 19 contributors, touching 153 files.
Thank you @ajaymiranda @Adist319 @Alex-Aron @zachmullen for your contributions!
| Area | What’s new |
|---|---|
| Editor support | • Neovim integration — first‑class LSP support plus a helper command to install/update the server (#227).<br>• Neovim now respects pyrefly.toml and remote config overrides (#442). |
| Configuration UX | • Eliminates misleading “Extra keys” parse errors in pyrefly.toml (#441).<br>• Added validation that a TypedDict field cannot be both Required and NotRequired (#414). |
| Diagnostics | • reveal_type messages are now INFO‑level instead of errors, so they no longer fail CI runs when you’re just inspecting types (#304).<br>• isinstance() checks involving Union[...] are now inferred correctly (#426). |
| Type‑system smarts | • Better handling of Self generics in chained method calls (#152).<br>• Fixed constrained TypeVar attribute access (#318).<br>• Fixed failure when calling methods on a plain TypeVar (#150). |
| Stub & third‑party typing | • Works with inline stub files that live beside their implementation (#419).<br>• Correctly recognises pandas-stubs generic aliases such as Index without type arguments (#427). |
TypedDict qualifier rule (#414) will surface errors in code that previously passed silently.reveal_type raising an error exit status, update scripts to look for an info‑level diagnostic instead (#304).pip install --upgrade pyrefly==0.19.0
@Adist319, @Alex-Aron, @connernilsen, @yangdanny97, @dluo , @dtolnay, @hugovk, @grantlouisherman, @grievejia, @kinto0, @MaggieMoss, @ndmitchell, @rchen152, @rubmary, @SamChou19815, @stroxler, @migeed-z
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →