Black

The uncompromising Python code formatter that ends style debates with deterministic formatting

Tool
PyPI
v26.5.1
41,806stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
91/100Excellent
Development Activity100
Maintenance96
Community68
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
83/100Excellent
Architecture85
Code Quality88
Innovation78
Learning Curve82

Black is a PEP 8 compliant code formatter for Python that reformats entire files in place, deliberately offering very few configuration knobs. By ceding control over formatting minutiae, teams get speed, determinism, and freedom from line-by-line style bikeshedding: any two developers running Black on the same code produce byte-identical output. It’s one of the most widely adopted developer tools in the Python ecosystem, maintained under the Python Software Foundation and used as the reference formatter for CPython itself and countless open-source and commercial Python codebases.

What You Get

  • A black CLI that reformats files, directories, or stdin, with --check/--diff modes for CI enforcement without mutating files
  • blackd, an HTTP daemon exposing the formatter as a service to avoid per-invocation startup cost in editor integrations
  • A minimal, deliberately opinionated configuration surface (pyproject.toml [tool.black]) covering line length, target Python versions, and a small set of preview/stable style toggles
  • Jupyter Notebook formatting support (including magic-cell handling) via the black[jupyter] extra
  • First-class editor and CI integrations, including an official GitHub Action (psf/black@stable) and pre-commit hook

Common Use Cases

  • Enforcing a single, non-negotiable Python code style across a team or open-source project without formatting debates in code review
  • Running Black in CI (--check) to fail builds on unformatted code, or as a pre-commit/git hook to auto-format on commit
  • Formatting Jupyter Notebooks as part of a data-science team’s code quality pipeline
  • Migrating a legacy codebase to a consistent style in one pass, then relying on Black to keep it that way going forward

Under The Hood

Architecture Black’s pipeline runs source through blib2to3 (src/blib2to3, a maintained fork of lib2to3’s grammar/parser) to build a lossless concrete syntax tree, then src/black/linegen.py walks that tree to produce a sequence of Line objects (src/black/lines.py) representing logical output lines, which src/black/__init__.py’s top-level format_str/format_file_contents functions assemble into final text; src/black/brackets.py and nodes.py handle bracket-depth tracking and node classification that drive line-splitting decisions, while src/black/mode.py centralizes the (intentionally small) set of style parameters. src/blackd wraps the same formatting core in an aiohttp-based HTTP daemon for low-latency repeated calls from editors. Tech Stack Pure Python 3.10+, packaged with Hatchling and hatch-vcs for version derivation from git tags; the CLI is built on Click, and blackd adds aiohttp as an optional dependency. The project maintains its own CPython grammar fork rather than depending on the standard library’s ast module, so it can format both current and near-future Python syntax. Code Quality The tests/ directory contains 276 test files, including an extensive tests/data corpus of before/after fixture pairs covering edge cases across Python grammar versions, plus idempotency tests (formatting twice produces no further change) and a self-hosting check (Black formats its own source). CI covers multiple OSes and Python versions, and the project publishes a public change log with strict semantic-versioning-like discipline given unstable/preview style flags for staged rollout of new formatting rules. API Design The CLI surface is minimal and stable (black [path], --check, --diff, --line-length), reflecting the project’s philosophy of near-zero configuration; the small pyproject.toml [tool.black] surface means most users never need to read documentation beyond the README to get value, though power users wanting incremental style migrations must learn the preview/unstable flag semantics.

Used by 21 apps in this directory

Python
49%
Other

Airbyte

Developer Tools · Data Engineering

21,916

Open-source ELT platform with 600+ connectors for moving data from any source to warehouses, lakes, and AI agents.

View details
95
Repo Health
80
Technical
67
Dependency
Built with
Python49%
Kotlin42%
Updated today
Python
90%
Apache 2.0

Apache Airflow

Data Engineering

46,530

Define, schedule, and monitor complex data workflows as Python code — with a powerful UI, 80+ provider integrations, and battle-tested scalability across thousands of production deployments.

View details
96
Repo Health
89
Technical
66
Dependency
Built with
Python90%
Updated today
Python
68%
Other

AutoGPT

Automation · Productivity · AI Assistants

186,687

Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.

View details
93
Repo Health
78
Technical
67
Dependency
Built with
Python68%
TypeScript31%
Updated today
TypeScript
48%
AGPL 3.0

Banana Slides

AI Design Tools · Productivity

15,476

AI-native PPT generator with Vibe editing, multi-LLM support, and fully editable PPTX export

View details
83
Repo Health
82
Technical
71
Dependency
Built with
TypeScript48%
Python47%
Updated 3 days ago
C++
69%
Apache 2.0

ClickHouse

Databases · Analytics · Data Engineering

49,325

Open-source column-oriented database that delivers real-time analytical queries on petabyte-scale data with millisecond latency.

View details
95
Repo Health
90
Technical
68
Dependency
Built with
C++69%
Python13%
Updated today
TypeScript
75%
Apache 2.0

Fern

Developer Tools

3,761

Fern turns a single OpenAPI, AsyncAPI, or Protobuf definition into type-safe SDKs for nine languages and a hosted API documentation site, all from one CLI and one source of truth.

View details
90
Repo Health
86
Technical
67
Dependency
Built with
TypeScript75%
Updated today
TypeScript
97%
Other

GrowthBook

Developer Tools · Analytics · Monitoring

8,138

Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.

View details
92
Repo Health
85
Technical
66
Dependency
Built with
TypeScript97%
Updated today
Go
84%
MIT

Hatchet

AI Development · Developer Tools · Automation

7,749

A Postgres-backed orchestration engine for background tasks, AI agents, and durable workflows that replaces Redis queues and multi-datastore durable execution platforms with a single self-hostable service.

View details
88
Repo Health
83
Technical
69
Dependency
Built with
Go84%
PLpgSQL11%
Updated today
TypeScript
71%
Other

highlight.io

Developer Tools · Analytics · Monitoring

9,367

Open-source full-stack monitoring that unifies session replay, error tracking, logging, and distributed tracing so you can stop context-switching between tools.

View details
69
Repo Health
78
Technical
66
Dependency
Built with
TypeScript71%
Go16%
Updated yesterday

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

Search