Flake8
Flake8 is a free, open-source Python command-line tool for checking code style and quality on Linux.
What Flake8 is
Flake8 is a free, open-source Python command-line tool for checking code style and quality on Linux. It combines pycodestyle, pyflakes, and McCabe, and supports additional community plugins. Running it produces merged warnings organized by file. Installation uses pip for the Python version you plan to use. Project settings can be stored in INI format in setup.cfg, tox.ini, or .flake8. Built-in checks are installed by default, while configuration lets users select or ignore error codes and apply per-file ignores. Most third-party plugins are distributed through PyPI, and local check or reporting plugins can be configured in a dedicated flake8:local-plugins section. Flake8 can run as a pre-commit hook, with Git and Mercurial hooks also listed by the project. It provides custom rules and CI support, but no autofix, security rules, or IDE support. Plugin accuracy and reliability may vary, and compatibility with Flake8 3.0 is not guaranteed.
Good
- Free open-source Python tool
- Built-in pycodestyle, pyflakes, and McCabe
- Configurable error selection and ignores
- Community and local plugin support
- Pre-commit, Git, and Mercurial hooks
Watch out
- Linux platform listed
- No autofix
- No IDE support
- Third-party plugin reliability varies
Who it suits
Flake8 suits Python developers working from the command line on Linux who want configurable style and quality checks. It also serves people maintaining or writing Flake8 plugins.
Verdict
Flake8 provides configurable Python checks from the command line, with plugin and hook support for development workflows. Its lack of autofix and IDE integration may matter to users wanting editor-based correction.
Plans and prices
From Flake8's own pricing page, checked 7 Oct 2001.
| Plan | Price | What it gives you |
|---|---|---|
| Flake8 | Free | Open-source Python command-line tool |
| Flake8 | Free | MIT-licensed Python package · requires Python >=3.10 |
The facts
Each one read from Flake8's own pages, with the date it was checked.
What it does
- Built-in checks
- Flake8 installs pycodestyle, pyflakes, and mccabe by default.checked 7 Oct 2001
- Complexity analysis
- McCabe checks are enabled through the C90 family and require the max-complexity option to report complexity violations.checked 15 Oct 2001
- Configurable checks
- Users can select or ignore error codes and configure per-file ignores.checked 7 Oct 2001
- Configuration
- Project configuration can be stored in setup.cfg, tox.ini, or .flake8 using INI format.checked 7 Oct 2001
- Configuration files
- The documented project configuration locations are setup.cfg, tox.ini and .flake8, using an INI [flake8] section.checked 15 Oct 2001
- Configuration precedence
- Command-line options override project configuration, which overrides defaults.checked 15 Oct 2001
- Core checks
- The default violation groups cover McCabe complexity (C90), pycodestyle errors (E), pyflakes errors (F) and pycodestyle warnings (W).checked 15 Oct 2001
- Extensibility
- Flake8 supports community plugins, most of which are uploaded to PyPI, and provides guidance for plugin developers.checked 7 Oct 2001
- File suppression
- Entire files can be skipped with an exclude configuration or a # flake8: noqa header.checked 15 Oct 2001
- GitHub activity
- The public repository showed about 3.8k stars, 362 forks and 2,544 commits when opened.checked 15 Oct 2001
- Homebrew distribution
- Homebrew offers flake8 through brew install flake8, lists MIT licensing and version 7.4.1, and depends on [email protected].checked 15 Oct 2001
- How it runs
- Flake8 runs from the command line and displays warnings in merged per-file output.checked 7 Oct 2001
- Inline suppression
- A line can suppress selected diagnostics with a case-insensitive # noqa comment and one or more error codes.checked 15 Oct 2001
- 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.checked 15 Oct 2001
- 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.checked 15 Oct 2001
- Latest release
- PyPI lists version 7.4.1 uploaded on September 23, 2026.checked 15 Oct 2001
- Licence
- PyPI identifies Flake8 as MIT licensed.checked 15 Oct 2001
- 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.checked 15 Oct 2001
- Limit: configuration format
- Reddit commenters criticized Flake8 for not supporting pyproject.toml configuration and described its issue discussions as difficult to navigate.checked 15 Oct 2001
- 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.checked 15 Oct 2001
- Limit: speed
- A Princeton software-quality handout measured Flake8 at 12.26 seconds in its comparison, much slower than Ruff's 0.29 seconds.checked 15 Oct 2001
- Local plugins
- Projects can define local extension and reporter plugins in a flake8:local-plugins section and optionally add import paths.checked 15 Oct 2001
- 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.checked 7 Oct 2001
The company
- Maker and maintainers
- The project was created by Tarek Ziadé and is maintained by Anthony Sottile and Ian Cordasco.checked 15 Oct 2001
Alternatives to Flake8
- 1
PMD
Free planLinuxmacOSSelf-hostedWindows6.8Free plan - 2
SwiftLint
Free planLinuxmacOSWindows6.6Free plan - 3

Ruff
Free planWebLinuxmacOSSelf-hosted6.5Free plan - 4

Biome
Free planWebExtensionLinuxmacOS6.4Free plan - 5

Cppcheck
Free planLinuxmacOSSelf-hostedWindows6.4Free plan - 6
Hadolint
Free planWebLinuxmacOSWindows6.4Free plan
