A precision tool for cherry-picking specific lines from a GitHub Pull Request and merging them into your target branch without the need to clone the repository locally.
- Surgical Selection: Choose exactly which lines to merge from a PR.
- Keep (Repo Version): Retain the original code (Red lines).
- Add (PR Version): Apply the new changes (Green lines).
- Smart Mutual Exclusion: Selecting a block of changes automatically handles conflicts, ensuring you don't merge duplicate logic.
- No-Clone Workflow: Operates entirely via the GitHub API. No
git clone, no local storage overhead. - Sidebar Navigation:
- Click file names to smooth-scroll to changes.
- Bulk Actions: Toggle entire files between "PR Version" and "Repo Version" with a single click.
- Status Indicators: identifying partial or mixed selections at a glance.
- Frontend: React + Vite
- Styling: Tailwind CSS (Custom Design System)
- Icons: Lucide React
- API: Octokit (GitHub REST API)
-
Authentication:
- Enter your GitHub Personal Access Token (PAT) when prompted.
- Required Scope:
repo(to read code and push commits). - Tip: Use the built-in Help ('?') link to generate one with the correct permissions.
- Optional Storage: Check "Remember me" to store your token locally. Uncheck for a one-time session (token cleared on exit).
-
Analyze a Pull Request:
- Paste the full URL of a GitHub PR (e.g.,
https://github.com/owner/repo/pull/123). - Click "Analyze".
- Paste the full URL of a GitHub PR (e.g.,
-
Select Your Changes:
- Master Toggle: Switch between "Block" (select entire chunks) and "Single" (select individual lines) modes globally.
- Per-File Overrides: You can also toggle the mode for specific files individually.
- The Left Sidebar shows all changed files. Click to jump to them.
- Green Checkbox: Select to ADD the change from the PR.
- Red Checkbox: Select to KEEP the original version (reject the change).
-
Merge:
- Click "Merge Selected Lines".
- The app will construct a new commit on the target branch with only your selected changes and push it to GitHub.
- Clone this repository.
- Install dependencies:
npm install
- Start the dev server:
npm run dev
- Open
http://localhost:5173to start merging!
Built for precision and speed.
