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 15 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| 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 2026
- Complexity analysis
- McCabe checks are enabled through the C90 family and require the max-complexity option to report complexity violations.checked 15 Oct 2026
- Configurable checks
- Users can select or ignore error codes and configure per-file ignores.checked 7 Oct 2026
- Configuration
- Project configuration can be stored in setup.cfg, tox.ini, or .flake8 using INI format.checked 7 Oct 2026
- Configuration files
- The documented project configuration locations are setup.cfg, tox.ini and .flake8, using an INI [flake8] section.checked 15 Oct 2026
- Configuration precedence
- Command-line options override project configuration, which overrides defaults.checked 15 Oct 2026
- Core checks
- The default violation groups cover McCabe complexity (C90), pycodestyle errors (E), pyflakes errors (F) and pycodestyle warnings (W).checked 15 Oct 2026
- Extensibility
- Flake8 supports community plugins, most of which are uploaded to PyPI, and provides guidance for plugin developers.checked 7 Oct 2026
- File suppression
- Entire files can be skipped with an exclude configuration or a # flake8: noqa header.checked 15 Oct 2026
- GitHub activity
- The public repository showed about 3.8k stars, 362 forks and 2,544 commits when opened.checked 15 Oct 2026
- 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 2026
- How it runs
- Flake8 runs from the command line and displays warnings in merged per-file output.checked 7 Oct 2026
- Inline suppression
- A line can suppress selected diagnostics with a case-insensitive # noqa comment and one or more error codes.checked 15 Oct 2026
- 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 2026
- 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 2026
- Latest release
- PyPI lists version 7.4.1 uploaded on September 23, 2026.checked 15 Oct 2026
- Licence
- PyPI identifies Flake8 as MIT licensed.checked 15 Oct 2026
- 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 2026
- 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 2026
- 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 2026
- 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 2026
- Local plugins
- Projects can define local extension and reporter plugins in a flake8:local-plugins section and optionally add import paths.checked 15 Oct 2026
- 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 2026
The company
- Maker and maintainers
- The project was created by Tarek Ziadé and is maintained by Anthony Sottile and Ian Cordasco.checked 15 Oct 2026
Alternatives to Flake8
- 1

Cppcheck
Free planOpen sourceLinuxmacOSSelf-hostedWindows7.4Free plan - 2
JSHint
Free planOpen sourceWebAPIExtensionLinux7.4Free plan - 3
PMD
Free planLinuxmacOSSelf-hostedWindows6.8Free plan - 4

Ruff
Free planWebLinuxmacOSSelf-hosted6.6Free plan - 5
SwiftLint
Free planLinuxmacOSWindows6.6Free plan - 6

Biome
Free planWebExtensionLinuxmacOS6.4Free plan
