Rattle is a Python linting framework built on LibCST with support for autofixes, custom in-repo lint rules, and hierarchical configuration.
Rattle is a fork of Fixit.
- 48 built-in lint rules
- Autofix support when a rule can safely rewrite code
- Local custom rules that can live inside your repository
- Hierarchical
pyproject.tomlconfiguration - Pre-commit integration for CI and local workflows
- LSP support
Install the CLI from PyPI:
pip install rattle-lintInstall editor/LSP support too:
pip install "rattle-lint[lsp]"The official AI agent skill can be installed from this repo.
npx skills add https://github.com/zigai/rattle/tree/main/src/rattle/.agents/skills/create-rattle-lint-rulesor
uvx library-skillsRattle runs with no enabled rules until a project enables them in
pyproject.toml:
[tool.rattle]
enable = ["fixit"]rattle lintApply available autofixes:
rattle fixExplain rule metadata, examples, and settings:
rattle explain use-f-string
rattle explain --json use-f-string[tool.rattle]
root = true
enable = ["fixit"]
python-version = "3.10"
disable = [
"no-static-if-condition",
"use-rattle-ignore-comment",
]
per-file-disable = {"tests/generated.py" = ["no-named-tuple"]}
[[tool.rattle.overrides]]
path = "legacy"
enable = ["fixit-extra"]
[[tool.rattle.overrides]]
path = "tests"
enable = ["no-named-tuple"]