awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Python Static Type Checkers

Ranking updated Jun 30, 2026

For a static type checker for Python codebases, the strongest matches are python/mypy (mypy is the standard static type checker for Python), google/pytype (Pytype is a full-featured static type checker for Python) and microsoft/pyright (Pyright is a dedicated static type checker for Python). astral-sh/ty and facebook/pyre-check round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.

Static analysis tools that identify type errors and enforce type hints within Python source code.

Python Static Type Checkers

Find the best repos with AI.We'll search the best matching repositories with AI.
  • python/mypypython avatar

    python/mypy

    20,489View on GitHub↗

    mypy is a static type checker for Python that analyzes source code to detect type errors and inconsistencies without executing the program. It functions as a static analysis tool and type inference engine, providing a gradual typing system that allows type hints to be added to a codebase incrementally while maintaining compatibility with dynamic typing. The project distinguishes itself through a combination of performance and precision features. It utilizes a daemon-based incremental checking system and multi-process parallel analysis to manage large codebases, supported by binary cache persi

    mypy is the standard static type checker for Python, offering type inference, gradual typing, stub support, editor integration, and file-based configuration, which directly matches the need for static type analysis without execution.

    PythonGradual Typing FrameworksGradual Typing SystemsAutomatic Type Deduction
    View on GitHub↗20,489
  • google/pytypegoogle avatar

    google/pytype

    5,037View on GitHub↗

    Pytype is a static code analysis tool and type inference engine for Python. It functions as a static type analyzer that detects type mismatches and verifies type annotations without requiring full manual hinting, while also serving as a type stub generator for producing standalone definition files. The project distinguishes itself by automatically determining variable and function types through an analysis of code patterns and assignments. This inference engine allows for structural code verification and the generation of type stubs that describe the interfaces of modules and functions. The

    Pytype is a full-featured static type checker for Python that combines automatic type inference, gradual typing, stub file generation, configurable rules, and integration-friendly error reporting, covering every aspect the visitor is looking for.

    PythonType Inference SupportType Stub FilesType Stub Generators
    View on GitHub↗5,037
  • microsoft/pyrightmicrosoft avatar

    microsoft/pyright

    15,241View on GitHub↗

    Pyright is a static type checker for Python designed to validate type hints and identify potential errors within large codebases. It functions as a command-line utility that integrates into local development environments and continuous integration pipelines to ensure code quality and consistency. The tool distinguishes itself through a high-performance analysis engine that utilizes incremental dependency graph analysis and persistent state caching to re-evaluate only the affected portions of a project. By implementing the Language Server Protocol, it provides real-time feedback, including err

    Pyright is a dedicated static type checker for Python that uses fast incremental analysis, supports gradual typing and stub files, integrates with editors via the Language Server Protocol, and provides configurable error reporting—covering every feature this search asks for.

    PythonLanguage Server IntegrationsType Inference Engines
    View on GitHub↗15,241
  • astral-sh/tyastral-sh avatar

    astral-sh/ty

    17,287View on GitHub↗

    This project is a high-performance static type checker and comprehensive development toolkit for Python. It functions as a core analysis engine that identifies type inconsistencies and enforces code correctness, while simultaneously providing a language server implementation to deliver real-time diagnostics and intelligence directly within development environments. The tool distinguishes itself through a parallelized execution engine that maximizes performance across large-scale codebases and monorepo structures. It supports gradual type adoption, allowing developers to integrate type checkin

    This is a high-performance static type checker for Python that also provides a language server for editor integration, supports gradual typing and file-based configuration, and delivers detailed error reports — matching all the key features you need for static analysis without running code.

    PythonLanguage Servers
    View on GitHub↗17,287
  • facebook/pyre-checkfacebook avatar

    facebook/pyre-check

    7,169View on GitHub↗

    Pyre is a high-performance static type checker and analysis tool for Python. It identifies type errors and ensures type safety without executing the program, utilizing a static type inference engine to maintain consistency across functions. The project is distinguished by an incremental type analysis engine that operates as a background daemon. This system monitors filesystem changes to re-validate only modified parts of a project, reducing the time required for repeated analysis. It also includes a static analysis security tool that uses taint analysis to track untrusted data flows and ident

    Pyre is a dedicated Python static type checker with an incremental type inference engine, stub file support, and editor integration, covering all the required features for catching type errors without running the code.

    OCamlIncremental Analysis DaemonsPython Type CheckersAbstract Syntax Tree Parsing
    View on GitHub↗7,169
  • facebook/pyreflyfacebook avatar

    facebook/pyrefly

    5,390View on GitHub↗

    Pyrefly is a static type checker for Python that operates as a language server, delivering real-time diagnostics, completions, and navigation in any editor supporting the Language Server Protocol. It also performs static tensor shape analysis, using symbolic dimension variables and arithmetic to verify shape consistency in deep learning models without runtime execution. Beyond core type checking, Pyrefly supports gradual adoption workflows: it can generate a baseline of known errors so only new issues are reported, migrate configuration from other type checkers, and automatically suppress exi

    Pyrefly is a static type checker for Python that runs as a language server, providing real-time type diagnostics, inference, gradual typing, and editor integration via LSP—directly matching your need to catch type errors without execution.

    RustType Stub GeneratorsLanguage ServersGradual Typing Adoption
    View on GitHub↗5,390
  • python/typeshedpython avatar

    python/typeshed

    5,076View on GitHub↗

    Typeshed is a collection of static type definitions and stubs for the Python standard library and third-party packages. It serves as a standardized resource for static analyzers and integrated development environments to validate code correctness and provide type-based code completion without modifying the original source code of the libraries. The project focuses on the creation and maintenance of external type hint files that separate type annotations from runtime implementation. It utilizes a system for versioning and mapping these stubs to specific versions of runtime packages to maintain

    typeshed is a collection of type stubs for Python libraries, not a type checker itself — it provides type definitions that tools like mypy or pyright use, but does not analyze your code or report type errors.

    PythonType Stub Files
    View on GitHub↗5,076
  • neoclide/coc.nvimneoclide avatar

    neoclide/coc.nvim

    25,165View on GitHub↗

    coc.nvim is a Node.js extension host and Language Server Protocol client that transforms Vim and Neovim into a full integrated development environment. It provides a framework for executing JavaScript and TypeScript plugins within a separate process to enable advanced IDE features without blocking the editor's main thread. The project is distinguished by its ability to host extensions and language servers through a centralized JSON configuration. It supports the installation and lifecycle management of third-party extensions from registries or local files, allowing users to customize language

    coc.nvim is a Language Server Protocol client and editor extension host for Vim/Neovim, not a static type checker for Python—it can integrate with a type checker via LSP but does not itself perform type analysis or catch type errors.

    TypeScriptLanguage Server IntegrationsLanguage Server Protocol Clients
    View on GitHub↗25,165
  • emacs-lsp/lsp-modeemacs-lsp avatar

    emacs-lsp/lsp-mode

    5,060View on GitHub↗

    lsp-mode is a Language Server Protocol client and IDE feature set for Emacs. It functions as a semantic code analysis tool and JSON-RPC communication layer that connects the editor to external language servers to provide intelligent code completion and real-time diagnostics. The project also serves as a Debug Adapter Protocol client, enabling interactive debugging sessions and breakpoint management. This allows for stepping through code and inspecting variables via a standardized protocol, including support for debugging within Docker containers. The system covers a broad range of developmen

    This is an Emacs LSP client that connects to external language servers for code intelligence, not a static type checker itself; it can integrate with Python type checkers like pyright but does not perform type analysis on its own.

    Emacs LispLanguage Server IntegrationsLanguage Server Protocol Clients
    View on GitHub↗5,060
  • pycqa/pylintPyCQA avatar

    PyCQA/pylint

    5,685View on GitHub↗

    Pylint is a static code analysis tool for Python that checks source code for errors, coding standard violations, and code smells without executing the program. It parses code into an abstract syntax tree and walks the tree to detect issues, enforces configurable style rules and naming conventions, and identifies duplicate code blocks by comparing tokenised source sequences. The tool also includes an inference engine that deduces variable types by simulating code paths, enabling deeper analysis even in untyped code. What distinguishes Pylint is its plugin-based checker architecture, which allo

    Pylint is a static code analysis and linting tool that includes some type inference, but its core purpose is catching style violations and code smells rather than dedicated static type checking for Python, so it doesn't fully match the search for a primary type checker like mypy or pyright.

    PythonType Inference SupportType Inference Engines
    View on GitHub↗5,685
  • prabirshrestha/vim-lspprabirshrestha avatar

    prabirshrestha/vim-lsp

    3,368View on GitHub↗

    vim-lsp is a Vim plugin that implements the Language Server Protocol to provide an asynchronous code intelligence tool for the editor. It serves as a bridge between Vim and external language servers, providing semantic code analysis and IDE-like navigation and diagnostics. The project provides a refactoring interface for renaming symbols across a workspace and applying quick-fixes. It also enables semantic highlighting, which color-codes elements based on their meaning as determined by the language server. The plugin covers a broad surface of capabilities, including symbol navigation and dis

    vim-lsp is an editor plugin that connects Vim to external language servers via the Language Server Protocol, so it can surface type diagnostics from a separate Python type checker like pyright or mypy, but it does not itself perform any type analysis — you would still need to install a dedicated Python type checker alongside it.

    Vim ScriptLanguage Server Integrations
    View on GitHub↗3,368
  • w0rp/alew0rp avatar

    w0rp/ale

    14,005View on GitHub↗

    Ale is a Neovim LSP client and asynchronous linter wrapper designed to integrate language servers and syntax checkers into the editor. It provides infrastructure for background syntax validation and automated code fixing without blocking the editor interface. The project implements the Language Server Protocol to enable advanced semantic navigation, including symbol renaming, definition jumping, and the application of automatic refactoring changes. It functions as an automatic code fixer that applies formatting and repairs based on feedback from linting tools and language servers. The plugin

    ALE is an editor plugin that integrates linters and language servers, but it does not perform static type analysis itself—it delegates to external tools like mypy, so it is not a dedicated Python type checker.

    Vim ScriptLanguage Server Integrations
    View on GitHub↗14,005
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
python/mypy20.5KPythonNOASSERTIONJun 22, 2026
google/pytype5KPythonNOASSERTIONMar 16, 2026
microsoft/pyright15.2KPythonotherFeb 20, 2026
astral-sh/ty17.3KPythonmitFeb 19, 2026
facebook/pyre-check7.2KOCamlMITJun 16, 2026
facebook/pyrefly5.4KRustmitFeb 20, 2026
python/typeshed5.1KPythonNOASSERTIONJun 16, 2026
neoclide/coc.nvim25.2KTypeScriptNOASSERTIONJun 22, 2026
emacs-lsp/lsp-mode5.1KEmacs Lispgpl-3.0Feb 14, 2026
pycqa/pylint5.7KPythonGPL-2.0Jun 15, 2026

Related searches

  • a fast Python linter and code formatter
  • a data validation library using Python type hints
  • a static analysis tool for security vulnerabilities
  • Linters, formatters and type checkers
  • a type-safe ORM for Python
  • a runtime type validation library for TypeScript
  • an AI bot for automated code review
  • a spell checker for source code and comments