CheckOps
mypy
mypy is an MIT optional static type checker for Python that checks type hints, supports gradual typing and integrates with editors and CI.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
mypy is an optional static type checker for Python. It reads standard type hints and reports type errors without running the code, aiming to combine the benefits of dynamic typing with static checking.
Gradual typing is central: unannotated code is not checked strictly by default, so teams can add hints module by module. Flags such as --strict tighten checks, per-module configuration handles legacy areas, and stub packages from typeshed provide types for libraries. mypyc, from the same project, compiles typed Python to C extensions.
In the quality loop mypy catches type bugs before tests run.
The source code is at python/mypy on GitHub under the MIT licence, with about 20,700 stars; the most recent commit was on 11 November 2026.
Features
- Type hint checking: Standard Python typing.
- Gradual typing: Adopt module by module.
- Strict mode: Opt-in stronger checks.
- Plugins: Framework plugins such as Django and Pydantic.
- Incremental mode: Caches results.
- Stubs: typeshed and third-party stubs.
Pros
- Reference implementation: Long-standing checker from the Python community.
- Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 11 November 2026.
- Community: About 20,700 GitHub stars.
Cons
- Speed: Slower than Pyright on large codebases.
- Dynamic patterns: Some idioms are hard to type.
- Stub gaps: Untyped libraries reduce value.
Usage and Links (Example)
pip install mypy
mypy --strict src/
Resources:
Pricing
mypy is free and open source under the MIT licence.
Recommended for?
- Python teams adopting type hints.
- Libraries shipping typed APIs.
Conclusion
mypy is the standard type checker for Python’s gradual typing.
Adopt strict settings module by module.
On CheckOps, mypy is filed under the Release & CI gates stage. Related tools listed here include Ruff, Pylint, Pyright, Bandit, pre-commit and SonarQube. Before standardising on one, compare recent maintenance activity, the pricing model as your usage grows, and the integrations you rely on today. Information on this page was verified against the official website, documentation and repository on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with mypy side by side.
RRuffRuff is an MIT, Rust-based Python linter and formatter from Astral that is 10-100x faster than Flake8 and Black, with over 900 built-in rules and auto-fix.Compare with mypy
PPylintPylint is a GPL-2.0 static code analyser for Python that checks errors, coding standards, code smells and refactoring opportunities, with plugins and detailed messages.Compare with mypy
PPyrightPyright is an MIT static type checker for Python from Microsoft, built for speed on large codebases, with a CLI and language server used by Pylance.Compare with mypy
BBanditBandit is the PyCQA's Apache-2.0 tool for finding common security issues in Python code by building an AST for each file and running security plugins against it.Compare with mypy
Ppre-commitpre-commit is an MIT framework for managing multi-language Git pre-commit hooks, running linters, formatters and checks before code is committed and in CI.Compare with mypy
SSonarQubeModernize your AI workflows with code verification for the agentic era.Compare with mypy