Skip to main content

mergefix

PyPI version Python

AI-powered git merge conflict resolver — run one command, review the diff, apply.

$ mergefix

╭──────────────────────────────────────────────────────╮
│ mergefix  ·  3 files  ·  7 conflicts  ·  provider: claude │
╰──────────────────────────────────────────────────────╯

→ src/auth.py (2 conflicts)

  Conflict 1/2
  ours: main
  theirs: feature/oauth
  ✓ Resolution:
    def authenticate(user, password):
        return bcrypt.checkpw(password.encode(), user.password_hash)

  Conflict 2/2
  ours: main
  theirs: feature/oauth
  ✓ Resolution:
    SESSION_TIMEOUT = 3600  # keep shorter timeout from main

Diff:
--- a/src/auth.py
+++ b/src/auth.py
@@ -12,7 +12,4 @@ def get_user(user_id):
-<<<<<<< HEAD
-    return hashlib.md5(password.encode()).hexdigest()
-=======
-    return bcrypt.checkpw(password.encode(), user.password_hash)
->>>>>>> feature/oauth
+    return bcrypt.checkpw(password.encode(), user.password_hash)

  Apply resolutions to src/auth.py? [Y/n] y
  ✓ Applied

✅ All 3 file(s) resolved.
Run `git diff` to review changes, then `git add` to mark as resolved.

Install

pip install mergefix

Set your API key (or use Ollama for free local resolution):

export ANTHROPIC_API_KEY=your-key   # Claude (default, recommended)
export OPENAI_API_KEY=your-key      # or OpenAI
# or: mergefix --provider ollama    # local, no API key needed

Usage

# Resolve all conflicts in the current repo (most common)
mergefix

# Resolve a specific file
mergefix src/auth.py src/db.py

# Preview resolutions without writing (safe to run anytime)
mergefix --preview

# Auto-apply all resolutions without prompting (CI/scripting)
mergefix --yes

# Keep original files as .orig backups
mergefix --backup

# Give the AI extra context about your codebase
mergefix --context "Python web app, prefer async patterns, strict type hints"

# Use local Ollama (free, no API key)
mergefix --provider ollama

# Use OpenAI
mergefix --provider openai --model gpt-4o

How it works

  1. Scans for files with <<<<<<< conflict markers (or use specific files)
  2. Parses each conflict block (supports 2-way and 3-way / diff3 style)
  3. Calls the AI with both sides of each conflict + surrounding context
  4. Displays each resolution in syntax-highlighted code blocks
  5. Shows a colorized unified diff of all changes
  6. Asks for confirmation before writing (skip with --yes)
  7. Writes the resolved content; optionally creates .orig backups

The AI sees the full file context, not just the conflict lines — so it understands the surrounding code and makes semantically correct resolutions.

Supports

  • Languages: Any language (Python, JS, TypeScript, Go, Rust, Java, Ruby, etc.)
  • Conflict styles: 2-way (default git) and 3-way / diff3
  • Providers: Claude (default), OpenAI, Ollama (local, free)
  • Multiple conflicts: Resolves all conflicts in a file in one AI call
  • Multiple files: Processes all conflicted files in one run

Pre-merge hook

Add to your workflow to catch issues early:

# After a merge, resolve all conflicts and review:
git merge feature-branch
mergefix --preview  # preview only
mergefix            # apply
git add -A
git commit

Or as a one-liner for scripting:

git merge feature-branch && mergefix --yes && git add -A && git commit -m "resolve merge conflicts"

Part of the git toolkit

mergefix is part of a suite of AI-powered git tools:

Tool What it does
gitbrief Pack your git history into LLM context
gpr Generate PR descriptions and commit messages
critiq AI code reviewer before you push
standup-ai Generate daily standups from git history
changelog-ai Generate CHANGELOG from commits
mergefix Resolve merge conflicts with AI

License

MIT

Metadata

Release files for mergefix 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mergefix 0.2.0
File Size Uploaded
mergefix-0.2.0.tar.gz 17.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mergefix 0.2.0
File Interpreter ABI Platform
mergefix-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 34.2 kB

Release files / mergefix-0.2.0.tar.gz

Download URL mergefix-0.2.0.tar.gz
Size 17.2 kB
Tags Source
SHA-256 checksum
How to use checksums
cd0ec09853fa543b4be470d5241e7da0dfcb4aefc879b8f4060f9b510fe7dcf2
BLAKE2b-256 checksum
How to use checksums
b86f95123241d71b746658612c8b161da2b41c986f9ba8078e06f72b6d8e8d6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.17

Release files / mergefix-0.2.0-py3-none-any.whl

Download URL mergefix-0.2.0-py3-none-any.whl
Size 17.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3171581cb946b6711fcca213f69251160b4313552137c380f6beb515085cf619
BLAKE2b-256 checksum
How to use checksums
4021b3b2a133a3183f500a9e4331326da2dc86319e30c14e2513a48bf9c6e54f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.17

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page