Overview and highlights
ty is described as an extremely fast Python type checker and language server, written in Rust and backed by Astral. Its documented highlights include performance stated as 10x–100x faster than mypy and Pyright, comprehensive diagnostics with rich contextual information, and configurable rule levels with per-file overrides and suppression comments. It is designed for adoption in existing codebases, with support for redeclarations and partially typed code, and uses fine-grained incremental analysis for fast updates when editing files in an IDE.
- 10x – 100x faster than mypy and Pyright
- Comprehensive diagnostics with contextual information
- Configurable rule levels, per-file overrides and suppression comments
- First-class project support
- Support for redeclarations and partially typed code
- Fine-grained incremental analysis
Type system features
ty generally supports the typing features described and specified in the Python typing documentation, with a tracking issue giving a detailed overview. Beyond that, it provides redeclarations, allowing the same symbol to be reused with a different type. It has first-class support for intersection types, where A & B means both A and B, and type narrowing in ty is built on intersections. Intersections are also used in hasattr narrowing and can be built from gradual types such as Any or its implicit counterpart Unknown, and ty performs reachability analysis based on types.
- Redeclarations of symbols with different types
- First-class intersection types
- Intersection-based type narrowing
- hasattr narrowing with synthetic protocols
- Top and bottom materializations
- Reachability analysis based on types
Language server
ty is documented as a fully-featured language server for Python, with a reference table of supported LSP features in its documentation. Diagnostics are reported directly in the editor and updated as you type, with a diagnosticMode setting controlling whether diagnostics cover open files only or the entire workspace; both pull and push diagnostic models are supported. Code navigation covers Go to Definition, Go to Declaration, Go to Type Definition, Find all references, and document and workspace symbols. Completions include auto-import suggestions for symbols that are not yet imported, and contextual information is surfaced through hover, inlay hints, signature help, document highlight and semantic highlighting.
- Go to Definition, Declaration and Type Definition
- Find all references across the workspace
- Document and workspace symbols
- Code completions with auto-import
- Quick fixes, add import, rename symbol, selection range
- Hover, inlay hints and signature help
- Code folding and notebook support
Getting started and editor integration
ty can be run with uvx using the command uvx ty check, which checks all Python files in the working directory or project by default. Separate installation documentation covers installing ty, and an editor integration guide explains how to add the ty language server to an editor. Editor integrations are available for VS Code, PyCharm, Neovim and more. An online playground is available for trying ty on snippets or small projects and for sharing code, for example in bug reports.
- Quick start: uvx ty check
- Installation documentation for other install methods
- Editor integration guide for the language server
- Editor integrations for VS Code, PyCharm and Neovim
- Online playground for snippets and small projects
Sources
Last verified 19 Sep 2026. This entry is compiled from the public web pages listed above. Nothing here is stated that those pages do not, and each of them was read on the date shown.