Tools/astral-sh/ruff

Ruff

Extremely fast Python linter and formatter, written in Rust

49.7k+94/wkgrowthRustMIT Licensenew release 0.16.8

The Lens

By Erik Loyd, SaaS CEO and former COO/CFO of an AWS Premier Partner.

Updated Aug 2026

Ruff does the work of flake8, black, isort, pylint, and pyupgrade in one pass, fast enough that linting stops being a step you wait on. It is a Python linter and formatter written in Rust, MIT licensed, no paid tier, no account. Version 0.16 flipped the default rule set from 59 rules to 413.

Nothing to host: one binary, one config block in pyproject.toml, one CI step. The upgrade is where the work is, because 413 default rules pointed at a mature codebase produces a wall of new findings to triage.

Solo and small teams should install it and delete the other five tools. Medium teams should budget an afternoon for the migration. Large teams should pin the version so a patch bump does not change what fails in CI. In JavaScript, biomejs/biome and oxc-project/oxc do the same job, and astral-sh/uv comes from the same team.

The catch: Ruff still has no custom plugin system, so team-specific flake8 plugins have nowhere to go. Astral was acquired by OpenAI in March 2026 and its paid registry pyx stopped taking signups. MIT means a fork stays possible, but the roadmap now belongs to a company whose main business is not Python tooling.

Free vs Self-Hosted vs Paid

fully free

Free

Everything. MIT licensed, no paid tier, no account, no gated features. Ruff replaces flake8, black, isort, pycodestyle, pyflakes, pyupgrade, and autoflake, all of which are also free. The value is CI time and one config file instead of five, not license savings.

Paid

None. There is no Ruff cloud, no Ruff Pro, no seat license. Astral's one commercial product was pyx, a private Python package registry, and it stopped accepting new signups after OpenAI acquired the company in March 2026.

Self-Hosted Costs

$0 in infrastructure. Ruff is a single binary installed through pip, uv, or your package manager, and it runs inside your existing CI job. The only real cost is migration time: version 0.16 (released 2026-07-23) turns on 413 lint rules by default instead of 59, so moving a mature codebase onto current defaults is an afternoon of triage, longer if you have custom flake8 plugins with no Ruff equivalent.

When to Pay

Never, because there is nothing to buy. Spend the budget on the migration afternoon instead.

Free. MIT licensed, no paid tier. Astral is part of OpenAI now, but the license keeps a fork on the table.

What to do by team size

Solo
free; install it and delete flake8, black, and isort
Small team
free; one config block in pyproject.toml and one CI step
Medium team
free; budget an afternoon to triage the 413 default rules in 0.16
Large team
free; pin the version so a patch bump does not change what fails in CI
Self-hosting ops:trivial

Get tools like this every Wednesday

One featured tool, three on the radar. No fluff.

Similar Tools

Score
88/100 · A
Adoption27/30
Maintenance25/25
Community11/20
License15/15
Analysis10/10

A low score is not a verdict on quality. Young and niche tools start low by design. How we calculate scores

Trust Signals

High adoption: 47,111 starsActive community: 2,010 forksPermissive license (MIT)

About

Stars
49,725
Forks
2,428

Explore Further

More tools in the directory