flake8-fixme
Check for FIXME, TODO and other temporary developer notes. Plugin for flake8.
What it is and what it does
flake8-fixme is a flake8 plugin that scans Python source code for temporary developer annotations—FIXME, TODO, XXX, and similar markers—and reports them as linting violations with specific error codes. It runs as part of your normal flake8 checks, allowing you to enforce team policies on which temporary notes are acceptable to commit. Each marker type gets its own error code (T100 for FIXME, T101 for TODO, T102 for XXX), so you can configure your CI/CD pipeline to allow some markers while blocking others.
The plugin has no runtime dependencies and integrates directly into flake8's plugin system. It was last updated in May 2019 and is no longer actively maintained, though the code remains stable and functional for supported Python and flake8 versions. It's most useful in projects that want to prevent accidental commits of incomplete work or temporary hacks.
Use it for:
- Enforce CI/CD rules that block FIXME comments from being merged while allowing TODO comments for future work.
- Scan codebases to identify and catalog all temporary markers left behind by developers.
- Prevent temporary debugging code marked with XXX or HACK from reaching production branches.
- Integrate into pre-commit hooks to catch temporary notes before they're staged for commit.
- Generate reports on code quality by tracking the frequency and location of temporary markers across a project.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A flake8 plugin that detects and flags temporary developer notes like FIXME, TODO, and XXX comments in Python code, allowing you to enforce policies on which temporary markers can be committed.
Yes, if you use flake8 and want to enforce policies on temporary code markers. The plugin is simple, has no dependencies, and works reliably for its narrow purpose. However, be aware the project is abandoned—it will not receive updates for new flake8 versions, so verify compatibility with your current flake8 version before relying on it in new projects.
Install
flake8-fixme on PyPI
pip
pip install flake8-fixmeuv
uv add flake8-fixmepoetry
poetry add flake8-fixmeInstalling flake8-fixme
Before you install
Installation is straightforward with no runtime dependencies. The project is marked abandoned with last commit on 2023-02-08, but the wheel is pure Python and the plugin remains functional for flake8 versions 3.7 and later.
License in practice
Licensed under Apache-2.0 (permissive), which allows use in commercial and private projects with minimal restrictions; no license compatibility concerns for typical workflows.
Quickstart
pip install flake8-fixme
# Then run flake8 on your code:
flake8 my_file.py
# In my_file.py:
# def my_function():
# # FIXME actual implementation here!
# pass
# Output: ./my_file.py:2:7: T100 Fixme found (FIXME)
Requires flake8 >= 3.7; Python >= 3.6 officially supported.
Verify before relying
- Whether the plugin remains compatible with recent flake8 versions beyond 3.7.
- Whether error codes T100, T101, T102 remain the current standard or have changed.
- Compatibility with Python versions beyond 3.8.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 2,657 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 252,114/month — #8,558 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: flake8_fixme-1.1.1-py2.py3-none-any.whl
Keywords: flake8, plugin, fixme, todo, xxx, hack
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
flake8-printA flake8 plugin that detects print statements…
permissive · top 5,000 on PyPI
flake8-noqaA flake8 plugin that validates the formatting…
copyleft · top 5,000 on PyPI
flake8-literalA flake8 plugin that enforces consistent…
copyleft · top 15,000 on PyPI
flake8-annotationsA Flake8 plugin that enforces PEP 3107-style…
permissive · top 15,000 on PyPI
wemake-python-styleguideA flake8 plugin that enforces strict,…
permissive · top 15,000 on PyPI
flake8-deprecatedA flake8 plugin that detects calls to…
copyleft · top 15,000 on PyPI
flake8-rst-docstringsA flake8 plugin that validates Python…
permissive · top 15,000 on PyPI
flake8-variables-namesA flake8 extension that detects poorly named…
permissive · top 15,000 on PyPI
pytest-flake8A pytest plugin that runs flake8 PEP8…
permissive · top 15,000 on PyPI
flake8-annotations-complexityA flake8 plugin that flags type annotations…
permissive · top 15,000 on PyPI