ty is an extremely fast Python type checker and language server implemented in Rust and developed by Astral, the team behind the uv package manager and Ruff linter. The project aims to provide type checking capabilities that are 10 to 100 times faster than existing tools like mypy and Pyright, as demonstrated by benchmarks showing performance on large projects like home-assistant without caching.
The type checker offers comprehensive diagnostics with rich contextual information and provides extensive configuration options including configurable rule levels, per-file overrides, suppression comments, and first-class project support. It is designed with adoption in mind, supporting features like type redeclarations and partially typed code to enable gradual migration of existing codebases. The language server component includes code navigation, completions, code actions, auto-import functionality, inlay hints, and on-hover help. A key technical feature is fine-grained incremental analysis designed specifically for fast updates when editing files in an IDE, making it practical for real-time development workflows.
The tool supports advanced typing features including first-class intersection types, sophisticated type narrowing, and reachability analysis based on type information. Editor integrations are available for VS Code, PyCharm, Neovim, and other editors. The project officially supports type checking code targeting Python 3.10 and later, though earlier versions from 3.7 through 3.9 can be selected with potential limitations. Notably, the Python version used to install ty is independent of the target version being checked, and a standalone installer is available that does not require Python at all.
Development of ty currently takes place within the Ruff repository, with pull requests for changes to the Rust source code submitted there rather than directly to the ty repository. The project uses 0.0.x versioning and is in beta status, meaning breaking changes including modifications to diagnostics may occur between versions. Users can try ty immediately through the uvx tool or via an interactive browser-based playground at play.ty.dev. The project is licensed under the MIT license and maintains documentation at docs.astral.sh/ty.