Compare
Up to three tools. The table shows the data as-is, without picking a “best”.
| Field | Ruff | D2 | Miller |
|---|---|---|---|
| Platforms | Universal, GitHub | Universal | Universal, MCP, Claude Code, Codex, Cursor |
| Local support | Yes | Yes | Yes |
| Paid API | No | No | No |
| License | MIT | MPL-2.0 | BSD-2-Clause |
| Stars | 50435 | 25793 | 10055 |
| Last activity | November 5, 2026 | October 11, 2026 | October 21, 2026 |
| Install complexity | EASY | Easy with a supported package manager; Homebrew must already be installed for this command. Official binaries, Windows, Linux, and source options are documented. | EASY |
| Category | Code Review, Testing | Workflow, UI | Workflow, Data |
| Best use | Best for an individual Python developer or small team that wants consistent linting, import organization, and formatting locally, in editors, and in CI. It adds reviewable rules, safe-by-default fixes, and a pinnable version. It does not replace tests, type checking, or business-logic review, and migration from Black or Flake8 should be tested on a branch. | For developers and small teams that want architecture and data-flow diagrams close to the repository and reviewable as text. Use it when relationships matter more than pixel-perfect placement; not for free-form marketing design or exact manual positioning. | Ideal for developers, data analysts, and operators who need to clean a CSV export, inspect JSON Lines, or summarize a large file from the terminal without starting a Python project. Use it for quick, repeatable file processing; concurrent transactions and advanced visual analysis still call for a database or complementary analytics tool. |