Skip to content
SPECIFICTION
Get listed

Flake8

flake8.pycqa.org

Free plan Open source WindowsmacOSLinuxAPISelf-hosted
Visit flake8.pycqa.org
Spec score 8.8 #2 of 33 in Linters

Spec sheet

What it does
Flake8 is a Python command-line tool that combines pycodestyle, PyFlakes, McCabe complexity checks and third-party plugins into merged per-file diagnostics.Read 15 Oct 2026 · github.com
Purpose
Flake8 combines pycodestyle, pyflakes, McCabe, and third-party plugins to check Python code style and quality.Read 7 Oct 2026 · github.com
Built-in checks
Flake8 installs pycodestyle, pyflakes, and mccabe by default.Read 7 Oct 2026 · flake8.pycqa.org
Complexity analysis
McCabe checks are enabled through the C90 family and require the max-complexity option to report complexity violations.Read 15 Oct 2026 · flake8.pycqa.org
Configurable checks
Users can select or ignore error codes and configure per-file ignores.Read 7 Oct 2026 · flake8.pycqa.org
Configuration
Project configuration can be stored in setup.cfg, tox.ini, or .flake8 using INI format.Read 7 Oct 2026 · flake8.pycqa.org
Configuration files
The documented project configuration locations are setup.cfg, tox.ini and .flake8, using an INI [flake8] section.Read 15 Oct 2026 · flake8.pycqa.org
Configuration precedence
Command-line options override project configuration, which overrides defaults.Read 15 Oct 2026 · flake8.pycqa.org
Core checks
The default violation groups cover McCabe complexity (C90), pycodestyle errors (E), pyflakes errors (F) and pycodestyle warnings (W).Read 15 Oct 2026 · flake8.pycqa.org
Extensibility
Flake8 supports community plugins, most of which are uploaded to PyPI, and provides guidance for plugin developers.Read 7 Oct 2026 · flake8.pycqa.org
File suppression
Entire files can be skipped with an exclude configuration or a # flake8: noqa header.Read 15 Oct 2026 · flake8.pycqa.org
GitHub activity
The public repository showed about 3.8k stars, 362 forks and 2,544 commits when opened.Read 15 Oct 2026 · github.com
Homebrew distribution
Homebrew offers flake8 through brew install flake8, lists MIT licensing and version 7.4.1, and depends on [email protected].Read 15 Oct 2026 · formulae.brew.sh
How it runs
Flake8 runs from the command line and displays warnings in merged per-file output.Read 7 Oct 2026 · github.com
Inline suppression
A line can suppress selected diagnostics with a case-insensitive # noqa comment and one or more error codes.Read 15 Oct 2026 · flake8.pycqa.org
Installation
The official quickstart installs Flake8 with python -m pip install flake8 and recommends invoking the interpreter-specific module when multiple Python versions are installed.Read 15 Oct 2026 · flake8.pycqa.org
Interpreter coupling
The documentation says Flake8 must run under the Python version whose syntax it needs to parse, so installing it for one interpreter does not install it for another.Read 15 Oct 2026 · flake8.pycqa.org
Latest release
PyPI lists version 7.4.1 uploaded on September 23, 2026.Read 15 Oct 2026 · pypi.org
Licence
PyPI identifies Flake8 as MIT licensed.Read 15 Oct 2026 · pypi.org
Limit: analysis scope
A Reddit comparison noted that Flake8's ecosystem cannot perform some cross-file and type-inference checks, such as detecting a function called with the wrong number of arguments.Read 15 Oct 2026 · reddit.com
Limit: configuration format
Reddit commenters criticized Flake8 for not supporting pyproject.toml configuration and described its issue discussions as difficult to navigate.Read 15 Oct 2026 · reddit.com
Limit: no automatic fixes
A Stack Overflow answer by Flake8 maintainer Anthony Sottile states that Flake8 only checks code and users need a formatter such as Black or autopep8 to modify it.Read 15 Oct 2026 · stackoverflow.com
Limit: speed
A Princeton software-quality handout measured Flake8 at 12.26 seconds in its comparison, much slower than Ruff's 0.29 seconds.Read 15 Oct 2026 · researchcomputing.princeton.edu
Local plugins
Projects can define local extension and reporter plugins in a flake8:local-plugins section and optionally add import paths.Read 15 Oct 2026 · flake8.pycqa.org
Maker and maintainers
The project was created by Tarek Ziadé and is maintained by Anthony Sottile and Ian Cordasco.Read 15 Oct 2026 · github.com
Plugin caveat
The documentation says third-party plugin accuracy and reliability may vary and that plugins are not guaranteed to work with Flake8 3.0.Read 7 Oct 2026 · flake8.pycqa.org
Plugin ecosystem
Installed plugins are discovered through entry points in the flake8.extension and flake8.report groups.Read 15 Oct 2026 · flake8.pycqa.org
Plugin parameters
Check plugins can request filename, line number, physical line, logical line, tree, and other inputs from Flake8.Read 15 Oct 2026 · flake8.pycqa.org
Praise: reliability
A Reddit user said Flake8 caught a bug introduced by another linter and that project teammates had already bought into using its extension.Read 15 Oct 2026 · reddit.com
Pre-commit
Flake8 can be included as a hook in the pre-commit Git hooks framework.Read 7 Oct 2026 · flake8.pycqa.org
Project history
PyCQA was formed around Flake8's migration from Mercurial to Git, initiated by Ian Cordasco on September 12, 2014.Read 15 Oct 2026 · meta.pycqa.org
Public API
The documentation includes a dedicated Public Python API section and a documented module index.Read 15 Oct 2026 · flake8.pycqa.org
Python requirement
The current PyPI release requires Python 3.10 or newer.Read 15 Oct 2026 · pypi.org
Recent release change
Release 7.4.0 dated September 22, 2026 drops Python 3.10 support, adds Python 3.15 support, and updates pycodestyle and Pyflakes dependency ranges.Read 15 Oct 2026 · flake8.pycqa.org
Security information
The GitHub repository exposes a security-policy link, but the opened repository page does not state certifications, compliance programs or hosted-data controls.Read 15 Oct 2026 · github.com
Target users
The documentation includes a user guide for Flake8 users and a plugin developer guide for people creating or maintaining plugins.Read 7 Oct 2026 · flake8.pycqa.org
Version control hooks
The project README lists Git and Mercurial hooks as features.Read 7 Oct 2026 · github.com
Version-control integration
Flake8 provides documented Git and Mercurial hook support.Read 15 Oct 2026 · github.com
VS Code customization
The extension can use a bundled or environment-installed binary, supports monorepo working directories and lets users change diagnostic severity by code.Read 15 Oct 2026 · marketplace.visualstudio.com
VS Code integration
Microsoft's Flake8 extension bundles Flake8 7.3.0, supports Python versions that are actively supported, and runs linting when Python files open.Read 15 Oct 2026 · marketplace.visualstudio.com

Plans and prices

Flake8 Free Open-source Python command-line tool Read 7 Oct 2026 · github.com
Flake8 Free MIT-licensed Python package · requires Python >=3.10 Read 15 Oct 2026 · pypi.org

Every Flake8 plan and price →

Where Specifiction places it

Alternatives to Flake8All alternatives →