ty Python type checker
Hacker ApprovedThe most recommended of 6 Python type checkers
Fast, free Python type checker from Astral with clear diagnostics that fits alongside uv and ruff. Critics say it's less accurate than rivals and lacks Django support.
Fast, free Python type checker from Astral with clear diagnostics that fits alongside uv and ruff. Critics say it's less accurate than rivals and lacks Django support.
100 people gave an opinion
- recommend it
- 74
- criticize it
- 26
- approval share
- 74%
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 carries the badge
- 74 people recommend itNeeds 10 or more, met.
- 2.8 recommenders for every criticNeeds 2 to 1 or better, 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
Fast, quick feedback in CI
“It does a good job of being fast and easy to use while catching many issues without being overly draconian.”
Comment from 16 Mar 2026 in “Comparing Python Type Checkers: Typing Spec Conformance” “Went from type checking taking ~10 minutes in CI to now taking ~15 seconds and runs on pre-commit.”
Comment from 9 Jun 2026 in “Are you expected to run five Python type-checkers now?” “rust-based tools (ty, pyrefly) have popped up, running sub-second.”
Comment from 6 Jun 2026 in “Show HN: Typedframes – Pandas/polars column name checking at lint time” Clear, helpful diagnostics
“ty immediately found issues where we annotated that a duct was an acceptable input, but actually doing so would break things.”
Comment from 16 Dec 2025 in “Announcing the Beta release of ty” “you'll get clear diagnostics for that particular example”
Comment from 16 Mar 2026 in “Comparing Python Type Checkers: Typing Spec Conformance” “"rust inspired" diagnostics that are extremely helpful”
Comment from 19 Dec 2025 in “Announcing the Beta release of ty” Part of uv and ruff toolchain
“Given the quality of uv and ruff and the experience of the team working on ty, I'm quite confident it's going to be great in that respect as well.”
Comment from 17 Mar 2026 in “Comparing Python Type Checkers: Typing Spec Conformance” “wondering if I can ever work another python project after having experienced uv, ruff, and ty”
Comment from 19 Mar 2026 in “Astral to Join OpenAI” “it's nice to know that uv (+ ty and many others) and Bun will stay maintained”
Comment from 19 Mar 2026 in “Astral to Join OpenAI” - Comment from 19 Mar 2026 in “Astral to Join OpenAI”
- Comment from 26 Jul 2026 in “Ruff v0.16.0 – Significant new updates – 413 default rules up from 59”
What people warn about
Each mark is one comment
Lacks Django and plugin support
“Very exciting! I guess I'll have to wait for Django and Pydantic support to migrate to it”
Comment from 16 Dec 2025 in “Announcing the Beta release of ty” “Ty doesn't support Django yet, and it doesn't have a plugin system, so third party developers can't improve it.”
Comment from 16 Dec 2025 in “Announcing the Beta release of ty” “ty‘s hesitant support of Django(’s quirks) preempts the advantages for me.”
Comment from 24 Oct 2026 in “Bringing uv and ty together” Less accurate than other checkers
“It's still very far from being competitive with SOTA type checkers like basedpyright.”
Comment from 30 Nov 2025 in “Ty – A fast Python type checker, written in Rust” “A large fraction of the findings were ty guessing the type and being wrong.”
Comment from 24 Oct 2026 in “Bringing uv and ty together” “Ty is quantitatively the worst of the well-known type checkers”
Comment from 19 Mar 2026 in “Astral to Join OpenAI” - Comment from 16 Mar 2026 in “Comparing Python Type Checkers: Typing Spec Conformance”
Young project, still maturing
“It's a good default for a pre-1.0 tool that aims to type check existing code.”
Comment from 24 Oct 2026 in “Bringing uv and ty together” “With the possible exception of ty since that's still pretty new”
Comment from 10 Oct 2026 in “Cloudflare acquires Deno” “It is definitely not as good, but it is also really new.”
Comment from 6 Jan 2026 in “I switched from VSCode to Zed”
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 checkerThis page | 74 | 26 | 74% | 11 | — | Approved |
| mypy | 34 | 14 | 71% | 10 | — | Approved |
| Pyright | 31 | 16 | 66% | 11 | — | — |
| Pyrefly | 28 | 8 | 78% | 8 | 1 mo3 owners | Approved |
| basedpyright | 9 | 7 | 56% | 7 | — | — |
What people said
40 of the 112 comments that mention it, newest first. Each links to the original comment.
“It's a good default for a pre-1.0 tool that aims to type check existing code.”
“A large fraction of the findings were ty guessing the type and being wrong.”
“It's cool to see ty support for scripts. That's something I really needed”
“even now aren't adding support until after `ty` is integrated”
“ty‘s hesitant support of Django(’s quirks) preempts the advantages for me.”
“One step closer to bringing the Rust experience to Python. Good.”
“having them as a first class feature of the package manager will save so much unnecessary pain”
“With the possible exception of ty since that's still pretty new”
“Great to see ruff, ty and uv being actively developed”
“ty seems to work better, and is not a one man show/bus factor of 1”
“Went from type checking taking ~10 minutes in CI to now taking ~15 seconds and runs on pre-commit.”
“other than `uv` and `ty`, I don't feel a whole lot has improved in Python land”
“rust-based tools (ty, pyrefly) have popped up, running sub-second.”
“There are plenty of options for static type checking in Python. Choose your favorite or just use Ty”
“Ty is quantitatively the worst of the well-known type checkers”
“wondering if I can ever work another python project after having experienced uv, ruff, and ty”
“Ty, Ruff, UV, all great tools I recently started really using”
“it's nice to know that uv (+ ty and many others) and Bun will stay maintained”
“ty sometimes finds real issues that are actually allowed by the spec”
“Given the quality of uv and ruff and the experience of the team working on ty, I'm quite confident it's going to be great in that respect as well.”
“you'll get clear diagnostics for that particular example”
“I am worried about the false negatives/positive rate however.”
“And it makes it infinitely easier for them to get with thr times and start typing their code!”
“It does a good job of being fast and easy to use while catching many issues without being overly draconian.”
“If you're starting a new project, there's no reason you shouldn't.”
“the type safety/security issues can hopefully be mitigated by ty and pyodide”
“I immediately set up up ruff, ty, pytest, pre-commit hook and GH workflow to run ruff/ty/pytest”
“It is definitely not as good, but it is also really new.”
“Python can type check single file scripts (even with PEP 723 deps) with ty”
“It's not great, but in this very thread there's a person from the conformance team”
“"rust inspired" diagnostics that are extremely helpful”
“Django support will be a game changer on top of the game changer ty is!”
“it doesn't work well with TypedDicts and that's a show-stopper for us”
“I'd be tempted to use this solely due to their support of intersection (A & B) types”
“ty immediately found issues where we annotated that a duct was an acceptable input, but actually doing so would break things.”
“Ty doesn't support Django yet, and it doesn't have a plugin system, so third party developers can't improve it.”
“Very exciting! I guess I'll have to wait for Django and Pydantic support to migrate to it”
“ty is actually a big step in this direction as it provides multi-file analysis and type inference.”
“TIL that ty is also a language server, which means it replaces not only mypy, but also Pyright”
“It's still very far from being competitive with SOTA type checkers like basedpyright.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.