ick
Applier of fine source code fixes since 2025
What it is and what it does
Ick centralizes code quality and best-practice checks that would otherwise be scattered across pre-commit hooks, CI workflows, wiki pages, and one-off scripts. Instead of wiring the same checks into every repository individually, you write rules once in a central repository and run them against any target repo you need to audit. Rules can be simple checks (exit with a status code) or include auto-fixes; they can be written in any language and run in parallel by default.
The tool is designed for teams, projects, or individual developers who maintain multiple repositories and want to enforce consistent standards across them without per-repo configuration. It supports filtering rules by tags, reproducing results locally for debugging, and tracking compliance across many repos. When best practices evolve—a new scanner ships, or a deprecated API needs removal—you update the rule once rather than in every repository.
Use it for:
- A security team publishes a rule to scan GitHub Actions workflows with a tool like zizmor across all company repos without adding it to each repo individually.
- An ML project enforces rules about approved model licenses or dependencies across multiple experiment repositories.
- A developer maintains hobby-horse style rules (e.g., text files must end with a newline) and applies them consistently across personal projects.
- A platform team checks that all repos have adopted a new Python version or removed a deprecated API, reporting which repos are compliant and which need work.
- A project runs checks before release that verify documentation is up to date, changelog is populated, and version numbers are consistent.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Ick is a polyglot tool for bundling best practices as versioned, runnable rules and checking any number of repos against them—with or without auto-fixes.
Yes, if you maintain multiple repositories and want to enforce consistent checks without duplicating configuration in each one. The permissive MIT license, active maintenance, low install friction, and lack of known vulnerabilities make it safe to adopt. Best suited for teams or developers with strong opinions about code quality who want a single source of truth for rules. Not necessary if you only maintain one or two repos or rely entirely on pre-commit and CI for enforcement.
Install
ick on PyPI
pip
pip install ickuv
uv add ickpoetry
poetry add ickInstalling ick
Before you install
Low install friction: pure Python wheel with no compiled dependencies. Active maintenance—last commit 2026-08-12, released 2026-07-24. Requires Python 3.11+.
License in practice
MIT license (permissive): you can use, modify, and distribute ick freely in commercial and private projects without restriction.
Quickstart
pip install ick
ick run --rules <path-to-rules-repo> <target-repo>
# Or test rules locally:
ick test-rules --rules <path-to-rules-repo>
Requires Python 3.11 or later.
Verify before relying
- Whether rules can be authored in languages other than Python and how that integration works in practice.
- Performance characteristics when running against large numbers of repos or with very large rulesets.
- How incremental re-running of rules based on changed inputs is configured and what inputs are tracked.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 13 — click, filelock, keke, msgspec, parse-errors, platformdirs, rich, uv, vmodule, tomlkit, moreorless, feedforward, pyyaml |
| Maintenance | actively maintained — 21 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 191,891/month — #9,873 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ick-0.12.0-py3-none-any.whl
Tags
More Quality Assurance packages
Coverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
blackBlack reformats Python source code to a…
permissive · top 1,000 on PyPI
pytest-xdistpytest-xdist distributes pytest tests across…
permissive · top 1,000 on PyPI
cfn-lintValidates AWS CloudFormation templates in YAML…
permissive · top 1,000 on PyPI
cdk-nagScans AWS CDK applications and CloudFormation…
permissive · top 5,000 on PyPI
kingfisher-binKingfisher is a command-line secret scanner…
permissive · top 15,000 on PyPI
commit-checkValidates Git commit messages, branch names,…
permissive · top 15,000 on PyPI
lefthookLefthook is a Git hooks manager that installs…
permissive · top 15,000 on PyPI
salt-lintsalt-lint checks Salt State files (SLS) for…
permissive · top 15,000 on PyPI
dotenv-linterLints `.env` files for consistency violations…
permissive · top 15,000 on PyPI
dbt-scoredbt-score lints dbt models against configurable…
permissive · top 15,000 on PyPI
wemake-python-styleguideA flake8 plugin that enforces strict,…
permissive · top 15,000 on PyPI
commitizenCommitizen enforces standardized commit…
permissive · top 5,000 on PyPI
zizmorzizmor is a static analysis tool that scans…
permissive · top 5,000 on PyPI