Nitpick
Enforce the same settings on multiple projects
Install / Use
/learn @andreoliwa/NitpickREADME
Nitpick
Command-line tool and flake8 plugin to enforce the same settings across multiple language-independent projects.
Useful if you maintain multiple projects and are tired of copying/pasting the same INI/TOML/YAML/JSON keys and values over and over, in all of them.
The CLI now has a nitpick fix command that modifies configuration files directly
(pretty much like black and isort do with Python files).
See the CLI documentation for more info.
Many more features are planned for the future, check the roadmap.
<!-- auto-generated-end-intro -->The style file
A "Nitpick code style" is a TOML file with the settings that should be present in config files from other tools.
Example of a style:
["pyproject.toml".tool.black]
line-length = 120
["pyproject.toml".tool.poetry.group.dev.dependencies]
pylint = "*"
["setup.cfg".flake8]
ignore = "D107,D202,D203,D401"
max-line-length = 120
inline-quotes = "double"
["setup.cfg".isort]
line_length = 120
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
combine_as_imports = true
This style will assert that:
- ... black, isort and flake8 have a line length of 120;
- ... flake8 and
isort are configured as above in
setup.cfg; - ... Pylint is present as a
Poetry dev dependency in
pyproject.toml.
Supported file types
These are the file types currently handled by Nitpick.
- Some files are only being checked and have to be modified manually;
- Some files can already be fixed automatically (with the
nitpick fixcommand); - Others are still under construction; the ticket numbers are shown in the table (upvote the ticket with 👍🏻 if you would like to prioritise development).
Implemented
<!-- auto-generated-start-implemented -->| File type | nitpick check | nitpick fix |
| --- | --- | --- |
| Any INI file | ✅ | ✅ |
| Any JSON file | ✅ | ✅ |
| Any plain text file | ✅ | ❌ |
| Any TOML file | ✅ | ✅ |
| Any YAML file | ✅ | ✅ |
| .editorconfig | ✅ | ✅ |
| .pylintrc | ✅ | ✅ |
| setup.cfg | ✅ | ✅ |
Planned
<!-- auto-generated-start-planned -->| File type | nitpick check | nitpick fix |
| --- | --- | --- |
| Any Markdown file | #280 🚧 | ❓ |
| Any Terraform file | #318 🚧 | ❓ |
| Dockerfile | #272 🚧 | #272 🚧 |
| .dockerignore | #8 🚧 | #8 🚧 |
| .gitignore | #8 🚧 | #8 🚧 |
| Jenkinsfile | #278 🚧 | ❓ |
| Makefile | #277 🚧 | ❓ |
Style Library (Presets)
Nitpick has a builtin library of style presets, shipped as Python resources.
This library contains building blocks for your your custom style. Just choose styles from the table below and create your own style, like LEGO.
Read how to:
<!-- auto-generated-start-style-library -->any
| Style URL | Description | | --- | --- | | py://nitpick/resources/any/codeclimate | CodeClimate | | py://nitpick/resources/any/commitizen | Commitizen (Python) | | py://nitpick/resources/any/commitlint | commitlint | | py://nitpick/resources/any/editorconfig | EditorConfig | | py://nitpick/resources/any/git-legal | Git.legal - CodeClimate Community Edition | | py://nitpick/resources/any/pre-commit-hooks | pre-commit hooks for any project | | py://nitpick/resources/any/prettier | Prettier |
javascript
| Style URL | Description | | --- | --- | | py://nitpick/resources/javascript/package-json | package.json |
kotlin
| Style URL | Description | | --- | --- | | py://nitpick/resources/kotlin/ktlint | ktlint |
markdown
| Style URL | Description | | --- | --- | | py://nitpick/resources/markdown/markdownlint | Markdown lint |
presets
| Style URL | Description | | --- | --- | | py://nitpick/resources/presets/nitpick | Default style file for Nitpick |
proto
| Style URL | Description | | --- | --- | | py://nitpick/resources/proto/protolint | protolint (Protobuf linter) |
python
| Style URL | Description | | --- | --- | | py://nitpick/resources/python/310 | Python 3.10 | | py://nitpick/resources/python/311 | Python 3.11 | | py://nitpick/resources/python/312 | Python 3.12 | | py://nitpick/resources/python/313 | Python 3.13 | | py://nitpick/resources/python/314 | Python 3.14 | | py://nitpick/resources/python/absent | Files that should not exist | | py://nitpick/resources/python/autoflake | autoflake | | py://nitpick/resources/python/bandit | Bandit | | py://nitpick/resources/python/black | Black | | py://nitpick/resources/python/flake8 | Flake8 | | py://nitpick/resources/python/github-workflow | GitHub Workflow for Python | | py://nitpick/resources/python/ipython | IPython | | py://nitpick/resources/python/isort | isort | | py://nitpick/resources/python/mypy | Mypy | | py://nitpick/resources/python/poetry-editable | Poetry (editable projects; PEP 600 support) | | py://nitpick/resources/python/poetry-venv | Poetry (virtualenv in project) | | py://nitpick/resources/python/poetry | Poetry | | [py://nitpick/resources/python/pre-commit
Related Skills
node-connect
336.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
83.0kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
83.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
336.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
