skillfed

fixit

A lint framework that writes better Python code for you.

fixit v2.2.1 417.8K downloads/30d#6,809 on PyPI712
Permissive license MIT License Copyright (c) Facebook, Inc. and its affiliates. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the… (full text in the JSON record) Active released

What it is and what it does

Fixit is a linting framework that analyzes Python code using LibCST to detect style and quality issues, then suggests or automatically applies fixes. It's designed for teams that want to enforce custom coding standards beyond what standard linters provide, with support for hierarchical configuration and local rule definitions. The framework handles the heavy lifting of AST traversal and code transformation, letting you focus on defining what constitutes a violation and how to fix it.

The package is built around the idea that linting should be both configurable and actionable—rules can propose changes that developers accept interactively or automatically. Fixit 2.0 represents a significant rebuild from earlier versions, with improved configuration handling and better support for custom rules, though this means projects on older versions may need migration effort.

Use it for:

  • Enforce team-specific code style rules that go beyond PEP 8 or standard linters like flake8.
  • Auto-fix common code patterns across a large codebase with suggested changes for review.
  • Build a custom linting layer for a framework or library to guide users toward best practices.
  • Integrate lint rules into CI/CD pipelines with automatic fix application for low-risk violations.
  • Create organization-wide lint rules that apply consistently across multiple projects.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Fixit is a configurable linting framework built on LibCST that detects code issues and generates suggested auto-fixes, which can be applied automatically or reviewed before acceptance.

Yes, if you need a customizable linting framework with auto-fix capability. Fixit is actively maintained, has low install friction, and is permissively licensed. The Alpha status and need to migrate from older versions are minor concerns; the real question is whether you need custom rules—if standard linters suffice, Fixit adds unnecessary complexity.

Install

fixit on PyPI

pip

pip install fixit

uv

uv add fixit

poetry

poetry add fixit

Installing fixit

Before you install

Low install friction with a pure-Python wheel and six runtime dependencies. Actively maintained with a recent release and ongoing repository activity; marked as Alpha in development status but in active use.

License in practice

MIT licensed under permissive terms, allowing commercial and private use with minimal restrictions. Includes additional Apache 2.0 license text in the package metadata.

Quickstart

pip install fixit

import fixit
from fixit.rules import Rule

# Define or use built-in rules, then run linter on code

Requires Python 3.9 or later.

Verify before relying

  • Whether Fixit 2.0's configuration and custom rule API are stable or still subject to breaking changes despite active maintenance.
  • Specific performance characteristics when linting large codebases or complex rule sets.
  • Extent of built-in rule library versus reliance on writing custom rules.

Package facts

License MIT License Copyright (c) Facebook, Inc. and its affiliates. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the… (full text in the JSON record) (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 6 — click, libcst, moreorless, packaging, tomli, trailrunner
Maintenance actively maintained — 275 days since the last release
Last repo commit
First released
Downloads 417,754/month — #6,809 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: fixit-2.2.1-py3-none-any.whl

Development Status :: 3 - AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: Quality Assurance

Tags

python linter with auto-fixesconfigurable lint rules frameworkcustom code quality checksautomatic code suggestionslibcst-based lintinghierarchical lint configurationpython code analysis tool
code-qualityast-basedauto-fix

More Python Modules packages