Skip to content
Flake8 wrapper to make it nice, legacy-friendly, configurable.
Python Perl
Branch: master
Clone or download
Latest commit 2fde2e8 Oct 2, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets upd plugins screenshot Oct 2, 2019
docs show version for plugins Oct 2, 2019
flakehell release Oct 2, 2019
tests fix some plugins prefixes Aug 3, 2019
.editorconfig generate some files Aug 5, 2019
.gitignore +docs Aug 8, 2019
.travis.yml check docs on ci Aug 9, 2019
LICENSE make license recognizable by github Aug 12, 2019 +assets Aug 5, 2019
markdownlint.json + markdownlint-cli Aug 7, 2019
pyproject.toml detect mccabe Oct 2, 2019


PyPI version Build Status License: MIT Documentation

It's a Flake8 wrapper to make it cool.

  • Shareable and remote configs.
  • Legacy-friendly: ability to get report only about new errors.
  • Use only specified plugins, not everything installed.
  • Manage codes per plugin.
  • Enable and disable plugins and codes by wildcard.
  • Make output beautiful.
  • pyproject.toml support.
  • Show codes for installed plugins.
  • Show all messages and codes for a plugin.
  • Check that all required plugins are installed.
  • Syntax highlighting in messages and code snippets.
  • PyLint integration.
  • Allow codes intersection for different plugins.

output example


python3 -m pip install --user flakehell


First of all, let's create pyproject.toml config:

# optionally inherit from remote config (or local if you want)
base = ""
# specify any flake8 options. For example, exclude "":
exclude = [""]
# make output nice
format = "grouped"
# 80 chars aren't enough in 21 century
max_line_length = 90
# show line of source code in output
show_source = true

# list of plugins and rules for them
# include everything in pyflakes except F401
pyflakes = ["+*", "-F401"]
# enable only codes from S100 to S199
flake8-bandit = ["-*", "+S1??"]
# enable everything that starts from `flake8-`
"flake8-*" = ["+*"]
# explicitly disable plugin
flake8-docstrings = ["-*"]

Show plugins that aren't installed yet:

flakehell missed

Show installed plugins, used plugins, specified rules, codes prefixes:

flakehell plugins

plugins command output

Show codes and messages for a specific plugin:

flakehell codes pyflakes

codes command output

Run flake8 against the code:

flakehell lint

This command accepts all the same arguments as Flake8.

Read for more information.

The FlakeHell mascot (Flaky) is created by @diana_leit and licensed under the CC BY-SA 4.0 license.

You can’t perform that action at this time.