A strict, opinionated flake8 plugin that enforces consistent, simple Python code style and flags complex code patterns.
andreoliwa/nitpick
Command-line tool and flake8 plugin that enforces shared config settings across multiple projects, and can fix config files automatically.
- Stars
- 413
- Forks
- 26
- Open issues
- 59
- Last commit
- 4 days ago
What is it?
Nitpick keeps configuration files consistent across several projects. You describe the expected settings in a style file written in TOML, and Nitpick checks that each project's INI, TOML, YAML, JSON, or other config files contain those keys and values. It can run as a standalone CLI with check and fix commands, or as a flake8 plugin.
The nitpick fix command edits configuration files directly, similar to how black and isort reformat Python code. Styles can be built from a library of presets covering tools such as Black, isort, flake8, Pylint, Mypy, Poetry, pre-commit, and ShellCheck, and they can include one another.
Nitpick can be installed with pip, uv, Poetry, pipx, or Homebrew, and it has pre-commit hook and MegaLinter integrations.
Key features
- 01Checks INI, TOML, YAML, JSON and plain text config files against a shared style.
- 02The fix command rewrites configuration files to match the style.
- 03Ships a library of presets for tools such as Black, isort, Flake8, Pylint, and Mypy.
- 04Styles can include other styles, so presets can be combined.
- 05Runs as a flake8 plugin or as a pre-commit hook.
Use cases
- Keeping linter and formatter settings identical across many Python repositories.
- Enforcing a shared pyproject.toml or setup.cfg layout in a team with many projects.
- Adding a config consistency check to pre-commit or CI pipelines.
Quick start
- 1
Install with pipx
pipx install nitpick - 2
Download the default style file
nitpick init - 3
Check your files for differences
nitpick check
In collections
Topics
FAQ
- What is nitpick?
- Command-line tool and flake8 plugin that enforces shared config settings across multiple projects, and can fix config files automatically. Nitpick keeps configuration files consistent across several projects. You describe the expected settings in a style file written in TOML, and Nitpick checks that each project's INI, TOML, YAML, JSON, or other config files contain those keys and values. It can run as a standalone CLI with check and fix commands, or as a flake8 plugin.
- Is nitpick free to use? What license does it have?
- nitpick is open source under the MIT license. Check the license terms before using it in commercial products.
- Is nitpick still maintained?
- Actively maintained. The last commit to nitpick was on Nov 2, 2026.
- What can I use nitpick for?
- Keeping linter and formatter settings identical across many Python repositories. Enforcing a shared pyproject.toml or setup.cfg layout in a team with many projects. Adding a config consistency check to pre-commit or CI pipelines.
- How do I install nitpick?
- Install with pipx: pipx install nitpick Download the default style file: nitpick init Check your files for differences: nitpick check
- Where can I get nitpick?
- The source code and installation instructions are on GitHub: https://github.com/andreoliwa/nitpick
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Python tool that computes McCabe cyclomatic complexity for functions and runs as a flake8 plugin to flag overly complex code.
A flake8 plugin that flags Python code which can be rewritten in a simpler form, such as merging isinstance calls or replacing if-blocks with ternaries.
A Python linter that wraps PyFlakes, pycodestyle and McCabe into one command, with support for third-party plugins.
A flake8 and Pylama plugin that checks whether Python imports are grouped and ordered according to a chosen style guide.
A Python utility and library that automatically sorts and groups your import statements.