Static analysis for Python — locally, in 60 seconds.
Scan your Python project for complexity outliers, vulnerable
dependencies, dead helpers, bare except: clauses, and magic
constants buried in business logic — with the ik CLI.
Pairs cleanly with ruff and mypy; inkode
contributes the historical, structural, and security signal those tools
don't.
Running on a Flask app
What we check, and how.
The smells nobody refactors out.
except: swallow-allsA perfectly-valid-looking try / except / pass that masks every kind of error. AI emits these to "make the test pass" and they live forever.
Functions and modules imported "for future use" that are never called. vulture finds them at 80% confidence so noise stays manageable.
Pinned versions of requests, urllib3, cryptography, etc. with known CVEs. pip-audit checks the PyPI Advisory Database + OSV in one pass.
Timeouts, retry counts, page sizes hardcoded as integers inline. Changing one means a code review; named constants make the change obvious in the diff.
Run it on your Python project.
Install in one line, scan in under a minute. No account required.
Scan another language
Cross-cutting checks: secret scanning · dependency vulnerability scanning · AI code review