19,818 stars · MIT · 0.0.85 (6 Oct 2026) · Track this in Scout
Checks Python code for type mistakes, very fast, from the team behind ruff and uv.
▶Repo detailsthe review · specs · pros & cons · install
What it is
ty is a Python type checker and language server written in Rust, from Astral, the team behind ruff (Edition 24) and uv (Edition 10). Its own README says "ty is currently in beta", and its version policy says the interface is not stable.
What it is good for. Any Python project large enough that a small mistake takes a while to show up. The first run is read-only and costs ten minutes, which makes it cheap to point at code that has never had a type checker near it.
- MIT, plain and unmodified, with the holder named: "Copyright (c) 2025 Astral Software Inc.". No carve-out and no second licence file.
- It can be run with nothing installed:
uvx ty checkdownloads, runs and cleans up. - It is shipping constantly. PyPI shows 42 releases between 5 June and 6 October 2026, roughly one every two or three days.
- It is 0.0.x by design and has no stable interface. The project's own version policy warns that breaking changes are expected between versions, so a build pipeline that pins nothing can break on any upgrade.
- Two Python numbers that read as a contradiction. The package installs on Python 3.8 and later, but only code targeting 3.10 and later is officially supported for checking, and targets 3.7 to 3.9 "may produce false results".
- The published benchmark file still compares version 0.0.55, thirty releases behind the current one. The Rust code lives in a different repository, so a code change belongs there and not here, and there are 889 open issues against 10 open pull requests.
- python/mypy
The reference Python type checker, written in Python, on a stable 2.x line rather than a 0.0.x beta.
Track this in Scout - microsoft/pyright
The same checking plus a language server, written in TypeScript, on a stable 1.1.x line.
Track this in Scout - facebook/pyrefly
The closest rival: also a fast Rust checker with a language server, already on a 1.x line.
Track this in Scout
uvx ty check