When a command fails, one word fixes it.
$ python app.py
ModuleNotFoundError: No module named 'uvicorn'
$ ai-fix
✗ Failed: No module named 'uvicorn'
Fix (high confidence): uvicorn is not installed in this environment.
→ pip install uvicorn
Apply fix? [Y/n]: y
Running: pip install uvicorn
✓ Done.
Re-running: python app.py
✓ Fixed! Command succeeded.
Install
pip install ai-fix
Set your API key:
export ANTHROPIC_API_KEY=sk-ant-... # Claude (recommended — fast + cheap) # or export OPENAI_API_KEY=sk-... # OpenAI fallback
Done. That's it.
Usage
# Fix the last command that failed ai-fix # Run a command and fix it if it fails ai-fix python app.py ai-fix npm run build ai-fix cargo build ai-fix docker compose up # Skip the confirmation prompt ai-fix -y python app.py # See what it would do without applying ai-fix --dry-run python app.py # Show full error output ai-fix -v npm run build
How it works
- Captures — re-runs your failed command and captures stdout + stderr
- Sends — ships the error + system context to Claude (or GPT-4o-mini)
- Gets back — structured fix commands with confidence score
- Applies — runs the fix, then re-runs your original command to confirm
The AI sees: your command, the full error, your OS, Python/Node versions, and which project files exist (package.json, pyproject.toml, Cargo.toml, etc.). It gives back exactly the commands to run — no prose, no explanations you have to decode.
Examples
Python missing module
$ python server.py
ModuleNotFoundError: No module named 'fastapi'
$ ai-fix
Fix (high confidence): fastapi is not installed.
→ pip install fastapi
npm build failure
$ npm run build
sh: tsc: command not found
$ ai-fix
Fix (high confidence): TypeScript compiler not installed.
→ npm install --save-dev typescript
→ npx tsc
Permission denied
$ ./deploy.sh
bash: permission denied: ./deploy.sh
$ ai-fix
Fix (high confidence): Script is not executable.
→ chmod +x deploy.sh
Port already in use
$ python manage.py runserver
Error: That port is already in use.
$ ai-fix
Fix (medium confidence): Port 8000 is occupied by another process.
→ lsof -ti:8000 | xargs kill -9
Git push rejected
$ git push
! [rejected] main -> main (non-fast-forward)
$ ai-fix
Fix (high confidence): Remote has commits not in your local branch.
→ git pull --rebase origin main
→ git push
Docker not running
$ docker ps
Cannot connect to the Docker daemon. Is docker running?
$ ai-fix
Fix (high confidence): Docker daemon is not running.
→ open -a Docker
Why not just Google it?
You already know how to Google. But when you're deep in a build, context-switching to a browser, reading three Stack Overflow answers, and coming back costs minutes and breaks flow.
ai-fix keeps you in the terminal. One word. Done.
Confidence levels
| Color | Meaning |
|---|---|
| 🟢 high | AI is certain — common error, clear fix |
| 🟡 medium | Likely fix, but depends on your setup |
| 🔴 low | AI is guessing — review before applying |
Shell support
Reads last command from:
- zsh (
~/.zsh_history) - bash (
~/.bash_history) - fish (
~/.local/share/fish/fish_history)
Cost
ai-fix uses Claude Haiku by default — the fastest and cheapest model. Each fix costs roughly $0.0003 (less than 1/10th of a cent). You'd need to run it 3,000 times to spend $1.
Privacy
- Only sends: the failed command, its error output (truncated to 3000 chars), your OS, language versions, and a list of project file names (not contents)
- Never sends file contents, environment variables, API keys, or paths beyond the current directory name
Requirements
- Python 3.11+
ANTHROPIC_API_KEYorOPENAI_API_KEY
License
MIT























