Pyright
Ranked 3 of 6 Python type checkers by recommenders
Reliable Python type checker from Microsoft that people recommend, especially in strict mode; critics say it is slow on large codebases.
Reliable Python type checker from Microsoft that people recommend, especially in strict mode; critics say it is slow on large codebases.
47 people gave an opinion
- recommend it
- 31
- criticize it
- 16
- approval share
- 66%
Recommended in 11 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: not recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 31 people recommend itNeeds 10 or more, met.
- 1.9 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 11 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Reliable, catches real errors
“It's been so reliable to me I wouldn't be 100% surprised if these are deliberate deviations from the spec”
Comment from 16 Mar 2026 in “Comparing Python Type Checkers: Typing Spec Conformance” “it's very reliable, and it makes those kinds of tests unnecessary”
Comment from 14 Jan 2026 in “Anthropic has made a large contribution to the Python Software Foundation” “Pyright catches this mistake.”
Comment from 5 Nov 2025 on Hacker News - Comment from 8 Jun 2026 in “Are you expected to run five Python type-checkers now?”
Strict mode is pleasant
“type checking code you've written yourself with Pyright in strict mode is quite a pleasant experience”
Comment from 1 Mar 2026 in “Python Type Checker Comparison: Empty Container Inference” “They're really not that bad with Pyright in strict mode.”
Comment from 2 Mar 2026 in “Python Type Checker Comparison: Empty Container Inference” “Decentish if you use uv & strict Pyright... sure.”
Comment from 8 May 2026 in “Mojo 1.0 Beta” - Comment from 21 Jan 2026 in “Ask HN: Do you have any evidence that agentic coding works?”
Strong static checking for Python
“If you run a type checker like ty or pyright they're not decorative”
Comment from 16 Mar 2026 in “Comparing Python Type Checkers: Typing Spec Conformance” “Mypy and pyright are good enough for type checking real projects.”
Comment from 6 Nov 2025 in “Why we migrated from Python to Node.js” “It gets you 99% of the benefits of traditional static typing”
Comment from 12 May 2026 in “If AI Writes Your Code, Why Use Python?” - Comment from 12 May 2026 in “If AI Writes Your Code, Why Use Python?”
Praised by its maintainers
“Eric Traut has done a marvellous job working on pyright”
Comment from 16 Mar 2026 in “Comparing Python Type Checkers: Typing Spec Conformance” “the legends who created Pyright”
Comment from 19 Mar 2026 in “Astral to Join OpenAI”
What people warn about
Each mark is one comment
Slow on large codebases
“Pyright has been great. But it's slow.”
Comment from 16 Dec 2025 in “Announcing the Beta release of ty” “For big codebases pyright can be pretty slow and memory hungry”
Comment from 17 Mar 2026 in “Comparing Python Type Checkers: Typing Spec Conformance” “I was trying to find out why pyright keep spinning on startup”
Comment from 5 Aug 2026 in “Zed DeltaDB” - Comment from 17 Dec 2025 in “Announcing the Beta release of ty”
Unknown types and false positives
“It just isn't good enough. Anytime Pyright gives up in type checking, which is often, it simply decays the type into one involving Any/"Unknown"”
Comment from 2 Feb 2026 in “My (very) fast zero-allocation webserver using OxCaml” “At various times I had to turn pyright off entirely because of false positives.”
Comment from 17 Dec 2025 in “Announcing the Beta release of ty” Disagrees with other type checkers
“the minute mypy, pyright, and Pyre disagree on metaprogramming or runtime patching you get three incompatible stories”
Comment from 16 Mar 2026 in “Comparing Python Type Checkers: Typing Spec Conformance” “there's still often (not always) fighting with typing, mypy, pyright because of the dynamic nature you mention”
Comment from 8 Jul 2026 in “TypeScript 7”
Other Python type checkers people recommend
The four most recommended other Python type checkers, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| ty Python type checker | 74 | 26 | 74% | 11 | — | Approved |
| mypy | 34 | 14 | 71% | 10 | — | Approved |
| PyrightThis page | 31 | 16 | 66% | 11 | — | — |
| Pyrefly | 28 | 8 | 78% | 8 | 1 mo3 owners | Approved |
| basedpyright | 9 | 7 | 56% | 7 | — | — |
What people said
40 of the 60 comments that mention it, newest first. Each links to the original comment.
“I think only Pyright compares in this regard”
“it works very well to keep it in the rails”
“This looks useful. However, for the release action, it might be better to use tool such as git-cliff”
“or strict pyright if performance isn't too bad”
“I was trying to find out why pyright keep spinning on startup”
“you need all the static checking machinery like Ruff, Pyright”
“At the very least you need all the static checking machinery like Ruff, Pyright”
“there's still often (not always) fighting with typing, mypy, pyright because of the dynamic nature you mention”
“I haven't really had problems.”
“With pyright you can even analyze code that is not annotated.”
“It gets you 99% of the benefits of traditional static typing”
“can emulate static type checking pretty well”
“Decentish if you use uv & strict Pyright... sure.”
“the output space is constrained enough that you can get pretty consistent Python code”
“the legends who created Pyright”
“For big codebases pyright can be pretty slow and memory hungry”
“Eric Traut has done a marvellous job working on pyright”
“It's been so reliable to me I wouldn't be 100% surprised if these are deliberate deviations from the spec”
“the minute mypy, pyright, and Pyre disagree on metaprogramming or runtime patching you get three incompatible stories”
“If you run a type checker like ty or pyright they're not decorative”
“If you care about correctness, unless you pick pyright, don't bother at the moment.”
“If you're starting a new project, there's no reason you shouldn't.”
“They're really not that bad with Pyright in strict mode.”
“type checking code you've written yourself with Pyright in strict mode is quite a pleasant experience”
“Occasionally mildly annoying but IMO it's clearly the best option.”
“This sometimes requires some awkwardness, such as declaring a variable for an expression I would otherwise just write inline”
“It just isn't good enough. Anytime Pyright gives up in type checking, which is often, it simply decays the type into one involving Any/"Unknown"”
“Use pyright or mypy in strict mode.”
“it's very reliable, and it makes those kinds of tests unnecessary”
“show up as build failures, not incidents.”
“I feel like I'm missing nothing compared to Python with type hints and pyright”
“they still have rough edges and will fail from time to time”
“I think it is way to slow too.”
“This for example works both in mypy and pyright.”
“At various times I had to turn pyright off entirely because of false positives.”
“they catch different errors so we've kept both”
“If you need Django support, it is better to stick to mypy or pyright for the time being.”
“Pyright has been great. But it's slow.”
“Mypy and pyright are good enough for type checking real projects.”
“Pyright catches this mistake.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.