mypy

Optional static type checker that catches Python bugs before you run your code

Tool
PyPI
v2.4.0
20,702 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
84 /100 Excellent
Development Activity 100
Maintenance 52
Community 84
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
83 /100 Excellent
Architecture 88
Code Quality 90
Innovation 85
Learning Curve 70

mypy is a static type checker for Python that adds optional, gradual typing on top of the language’s existing type hint syntax (PEP 484 and friends). Rather than requiring a fully-typed codebase up front, mypy lets you annotate incrementally and will infer types where it can, flagging mismatches — calling a function with the wrong argument type, accessing an attribute that doesn’t exist, returning the wrong type — as static errors instead of runtime crashes.

Under the hood mypy is itself written largely in Python and compiled with mypyc (its own sibling project) for speed, and ships as both a CLI (mypy path/to/code) and an importable API for editor/IDE integrations. It’s the reference implementation the Python typing ecosystem is built around, maintained under the official python GitHub organization with backing from Dropbox, Google, Microsoft, and the broader community, and it powers type-checking in most major Python IDEs and CI pipelines.

What You Get

  • A CLI (mypy) that type-checks a file, package, or entire project and reports errors with file/line precision
  • Gradual typing: mix typed and untyped code, and control strictness per-module via --strict, --disallow-untyped-defs, and similar flags
  • Type inference for unannotated local variables and expressions, reducing how much you need to annotate manually
  • Support for the full modern typing feature set: generics, Protocols, TypedDict, overloads, Literal types, and typeshed-provided stubs for the standard library and popular packages
  • A daemon mode (dmypy) and incremental caching for fast repeated type checks in editors and CI
  • Compiled itself with mypyc for significantly faster execution than a pure-Python interpreter run

Common Use Cases

  • Adding a CI gate that fails a build when new code introduces type errors or removes existing type-safety guarantees
  • Incrementally typing a large legacy Python codebase module-by-module without a disruptive big-bang rewrite
  • Powering real-time type-checking and autocomplete in editors (VS Code, PyCharm) via the mypy language server integration
  • Enforcing strict typing on library public APIs so consumers get accurate type information and IDE support
  • Catching None-safety and Optional-handling bugs (e.g. calling a method on a value that might be None) before they hit production

Under The Hood

Architecture - mypy’s core lives in mypy/checker.py (~10,000 lines), which walks a parsed AST performing type inference and constraint checking against the declared/inferred types, coordinating with mypy/semanal.py for semantic analysis and name binding and mypy/build.py for the overall multi-module build graph, dependency ordering, and incremental caching. Type stub resolution (typeshed bundling, third-party stub packages) and plugin hooks (for frameworks like Django/attrs that generate types dynamically) are layered on top of this core pipeline. Tech Stack - Implemented in Python 3, with the performance-critical parts compiled ahead-of-time via mypyc (mypy’s own compiler project, itself a directory in this repo) into C extensions for a substantial speed-up over interpreted execution; packaging uses setuptools with a build-time dependency on typing_extensions, pathspec, and tomli. Code Quality - The mypy/test directory contains an extensive test suite including self-checking (mypy type-checks its own codebase via mypy_self_check.ini), snapshot-style .test data files under test-data/, and a stubtest.py tool for verifying stub accuracy against runtime behavior — reflecting a mature, heavily-tested project after over a decade of development. API Design - The CLI surface is a single mypy entry point with a large but well-documented flag set (--strict, --ignore-missing-imports, per-module overrides via config file), and the library exposes a stable-ish internal API used by editor plugins (dmypy daemon protocol) and IDE integrations, though the internal AST/type APIs are explicitly not a public stability contract.

Used by 30 apps in this directory

Rust
84%
Apache 2.0

liteparse

Developer Tools

12,906

A fast, lightweight, open-source document parser that extracts spatial text, bounding boxes, and Markdown from PDFs and Office files — entirely on your machine.

View details
83
Repo Health
80
Technical
71
Dependency
Built with
Rust 84%
Updated 1 weeks ago
Python
97%
MIT

local-deep-researcher

AI Assistants · AI Development

9,387

A fully local web research assistant that iteratively searches, summarizes, and refines markdown reports using any Ollama or LMStudio model—no cloud or API keys required.

View details
49
Repo Health
74
Technical
76
Dependency
Built with
Python 97%
Updated 2 weeks ago
Python
95%
MIT

MemPalace

AI Agents · AI Development · AI Memory

59,720

Local-first AI memory with verbatim storage, pluggable backends, and 96.6% retrieval recall on LongMemEval — no API key required.

View details
86
Repo Health
84
Technical
73
Dependency
Built with
Python 95%
Updated 1 weeks ago
Python
100%
Other

OpenBB

Analytics · Databases · Invoicing Finance

74,601

The AI Workspace for Finance: Connect Data, Run AI Agents, Build Analytics

View details
80
Repo Health
80
Technical
65
Dependency
Built with
Python 100%
Updated 1 weeks ago
TypeScript
92%
Other

OpenHands

AI Code Assistants · AI Development

91,695

The self-hosted developer control center for running AI coding agents — locally, in Docker, on VMs, or across cloud backends — with automation workflows for GitHub, Slack, and more.

View details
91
Repo Health
82
Technical
67
Dependency
Built with
TypeScript 92%
Updated 1 weeks ago
Python
74%
Apache 2.0

OpenKB

Knowledge Management

4,804

An open-source CLI that compiles raw documents into a structured, interlinked wiki-style knowledge base using LLMs — powered by vectorless, reasoning-based retrieval (PageIndex) instead of a vector database.

View details
48
Repo Health
72
Technical
77
Dependency
Built with
Python 74%
TypeScript 23%
Updated 3 months ago
Python
73%
AGPL 3.0

OpenViking

AI Development · AI Memory · Databases

40,705

An open-source context database that gives AI agents a unified filesystem for memory, resources, and skills with hierarchical tiered retrieval.

View details
85
Repo Health
75
Technical
64
Dependency
Built with
Python 73%
TypeScript 12%
Rust 11%
Updated 6 days ago
Python
99%
Apache 2.0

Rasa Open Source

AI Assistants · AI Development · Voice AI

21,353

Rasa Open Source is a Python machine learning framework for building contextual, multi-turn chatbots and voice assistants that understand natural language and maintain conversation state.

View details
62
Repo Health
78
Technical
63
Dependency
Built with
Python 99%
Updated 3 months ago
Python
97%
MIT

Stealth Browser MCP

Developer Tools · Mcp

3,266

An MCP server giving AI agents real, undetectable browser automation — built on nodriver and Chrome DevTools Protocol to navigate sites protected by Cloudflare and other anti-bot systems for automation and testing workflows.

View details
74
Repo Health
66
Technical
73
Dependency
Built with
Python 97%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers