Automatically fix Python code using ChatGPT
Project description
Auto Code Fixer
Auto Code Fixer is a CLI tool that detects runtime failures and automatically fixes Python code using OpenAI.
It is designed for real projects where an entry script imports multiple local modules. The tool runs your code in an isolated sandbox + venv, installs missing external dependencies, and applies fixes only after the code executes successfully.
Installation
pip install auto-code-fixer
Quick start
auto-code-fixer path/to/main.py --project-root . --ask
If you want it to overwrite without asking:
auto-code-fixer path/to/main.py --project-root . --no-ask
What it fixes (core behavior)
✅ Local/internal imports are treated as project code
If your entry file imports something like:
from mylib import add
…and mylib.py exists inside the project, Auto Code Fixer will:
- copy
main.py+mylib.pyinto a sandbox - execute inside the sandbox
- if the traceback points to
mylib.py, it will fixmylib.py - then apply the fix back to your repo (with backups)
✅ External imports are auto-installed
If execution fails with:
ModuleNotFoundError: No module named 'requests'
…it will run:
pip install requests
…but only inside the sandbox venv (so your system env isn’t polluted).
Safety
Backups
Before overwriting any file, it creates a backup:
file.py.bak(or.bak1,.bak2, ...)
Dry run
auto-code-fixer path/to/main.py --project-root . --dry-run
Advanced options
Run a custom command (pytest, etc.)
Instead of python main.py, run tests:
auto-code-fixer . --project-root . --run "pytest -q" --no-ask
Model selection
export AUTO_CODE_FIXER_MODEL=gpt-4.1-mini
# or
auto-code-fixer main.py --model gpt-4.1-mini
Max retries / timeout
auto-code-fixer main.py --max-retries 8 --timeout 30
Optional AI planning (which file to edit)
auto-code-fixer main.py --ai-plan
This enables a helper that can suggest which local file to edit. It is best-effort.
Environment variables
OPENAI_API_KEY(required unless you always pass--api-key)AUTO_CODE_FIXER_MODEL(default model)AUTO_CODE_FIXER_ASK=true|falseAUTO_CODE_FIXER_VERBOSE=true|false
Notes
- This tool edits code. Use it on a git repo so you can review diffs.
- For maximum safety, run with
--askand/or--dry-run.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file auto_code_fixer-0.3.1.tar.gz.
File metadata
- Download URL: auto_code_fixer-0.3.1.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c95df4e19766f89dccd5e096141aebd097af93bf5b43f2a59a59c0caf49c7f1
|
|
| MD5 |
3740cab72b875c548874c52db6d54ede
|
|
| BLAKE2b-256 |
aeeec0556f8e35141e1e2406e64bdbfa6b8feb6d11b333b670f811342622952a
|
File details
Details for the file auto_code_fixer-0.3.1-py3-none-any.whl.
File metadata
- Download URL: auto_code_fixer-0.3.1-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a3c3835d0b472542541cc878801e65e605ba5cd0275f8b5bfde2280b5004adf
|
|
| MD5 |
6855c9be32a692956a7920af32bd8eb3
|
|
| BLAKE2b-256 |
78563180832ea09c6ba1d482c80537aadda8f280bfb68bd166378440fa374f0c
|