VibeMerge - Git Merge Conflict Resolver
Transform merge conflicts into epic duels! The best 3-way diff editor for VS Code, inspired by IntelliJ IDEA.

🎬 Demo

✨ Why VibeMerge?
| Feature |
Description |
| 3-Way Merge |
IntelliJ IDEA-style triple panel: Current / Result / Incoming |
| Duel System |
Each conflict resolution is an epic battle with animations |
| Score Tracking |
Track your Defense, Victory, and Alliance stats |
| Victory Celebration |
Confetti explosion when all conflicts are resolved |
| Syntax Highlighting |
Automatic language detection and highlighting |
| Synchronized Scroll |
All panels scroll together for easy comparison |
📸 Screenshots
3-Way Editor
Triple panel view: Current (🛡️) | Result (📝) | Incoming (⚔️)
Duel System
| Defense 🛡️ |
Victory ⚔️ |
Alliance 🤝 |
 |
 |
 |
Victory Celebration
All conflicts resolved = Confetti and celebration!
✨ Features
🎯 Premium 3-Way Editor
- Triple panel view: Current (Left) | Result (Center) | Incoming (Right)
- Synchronized scrolling across all three panels
- Syntax highlighting based on file type
- Line numbers for precise navigation
- diff3 support with base content for better analysis
🎮 Epic Duel System
Every conflict resolution becomes an epic duel!
| Action |
Result |
Animation |
| Accept Left |
🛡️ DEFENSE! |
Glowing cyan shield |
| Accept Right |
⚔️ VICTORY! |
Purple diagonal slash |
| Accept Both |
🤝 ALLIANCE! |
Golden merge fusion |
📊 Real-Time Score Board
- Defense counter 🛡️
- Victory counter ⚔️
- Alliance counter 🤝
- Pulse animation on each point scored
🎉 Victory Celebration
When all conflicts are resolved:
- Celebration overlay with confetti
- Spectacular animation
- Quick save button
- Keyboard shortcut displayed
🔧 Smart Encoding Management
- Auto-detection of UTF-8, Latin-1, etc.
- Automatic mojibake fix for corrupted characters
- Preservation of line endings (LF/CRLF)
- Status bar with confidence indicator
📦 Installation
Option 1: VS Code Marketplace (Recommended)
- Open VS Code
- Go to Extensions (
Cmd+Shift+X / Ctrl+Shift+X)
- Search for "VibeMerge"
- Click Install
Option 2: From VSIX file
- Download
vibe-merge-x.x.x.vsix from Releases
- In VS Code, open Command Palette (
Cmd+Shift+P / Ctrl+Shift+P)
- Type "Extensions: Install from VSIX..."
- Select the downloaded
.vsix file
- Restart VS Code
Option 3: Build from source
git clone https://github.com/ddiawara/vibe-merge.git
cd vibe-merge
bun install
bun run compile
bunx @vscode/vsce package --allow-missing-repository
🎹 Keyboard Shortcuts
| Shortcut |
Action |
Cmd+Alt+M (Mac) / Ctrl+Alt+M (Win/Linux) |
Open Merge Editor |
Cmd+Shift+← / Ctrl+Shift+← |
Accept Left (Defense 🛡️) |
Cmd+Shift+→ / Ctrl+Shift+→ |
Accept Right (Victory ⚔️) |
Alt+↑ / Alt+↓ |
Navigate between conflicts |
Cmd+S / Ctrl+S |
Save |
🎮 Usage
Available Commands
Open the Command Palette (Cmd+Shift+P) and type "VibeMerge":
| Command |
Description |
| Open Merge Editor |
Open the merge editor for the current file |
| Resolve All Conflicts |
Auto-resolve simple conflicts |
| Accept Current (Left) |
Accept current version (Defense) |
| Accept Incoming (Right) |
Accept incoming version (Victory) |
| Accept Both Changes |
Keep both versions (Alliance) |
Typical Workflow
| Step |
Action |
| 1 |
🔀 Git conflict after merge/rebase |
| 2 |
📂 Open the conflicted file |
| 3 |
⌨️ Press Cmd+Alt+M to open VibeMerge |
| 4 |
👀 View 3 panels: CURRENT 🛡️ | RESULT 📝 | INCOMING ⚔️ |
| 5 |
🎮 Resolve each conflict with duel animations |
| 6 |
🎉 All resolved? Victory celebration! |
| 7 |
💾 Save with Cmd+S |
⚙️ Configuration
In VS Code settings (Cmd+,), search for "VibeMerge":
| Setting |
Description |
Default |
vibeMerge.autoApplyNonConflicting |
Auto-apply non-conflicting changes |
true |
vibeMerge.showLineNumbers |
Show line numbers |
true |
vibeMerge.highlightSyntax |
Enable syntax highlighting |
true |
vibeMerge.syncScroll |
Synchronize scroll between panels |
true |
🏗️ Architecture
src/
├── extension.ts # Entry point, activation
├── providers/
│ ├── MergeEditorProvider.ts # Webview and message handling
│ └── ConflictFileDecorator.ts # Badge decorations on conflict files
├── utils/
│ ├── ConflictParser.ts # Parse git markers (<<<, ===, >>>)
│ ├── DiffUtils.ts # LCS, word-diff, conflict analysis
│ ├── EncodingUtils.ts # Encoding detection, mojibake fix
│ └── GitConflictDetector.ts # Conflict file detection
└── webview/
└── MergeEditorWebview.ts # 3-panel interface + Duel System
🛠️ Development
# Watch mode (auto-recompile)
bun run watch
# Debug mode
# Press F5 in VS Code to launch Extension Development Host
# Lint
bun run lint
# Package for distribution
bunx @vscode/vsce package --allow-missing-repository
🎨 Design Inspirations
- IntelliJ IDEA — 3-way merge interface
- KDiff3 — Conflict detection algorithms
- Fighting Games — Duel system and scoring
📜 Changelog
v1.0.0 (Initial Release)
- 3-way editor with synchronized scrolling
- Git conflict parsing (standard and diff3)
- Duel System with animations (Defense/Victory/Alliance)
- Real-time Score Board
- Victory celebration with confetti
- Smart encoding management
- Automatic syntax highlighting
- Complete keyboard shortcuts
📄 License
MIT © 2025 d3n
Made with ❤️ and ⚔️ by d3n
May your merges be ever victorious!