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.
- Resizable: Drag the sidebar edge to resize it (200px – 600px).
- 🤖 AI-Powered Feature Grouping (optional):
- Sends the PR diff to an LLM (Gemini, OpenAI, or Anthropic) which groups changes into logical features.
- Toggle entire features on/off with a single click.
- Automatic dependency detection between features with confirmation prompts.
- Pre-annotated diffs with exact line IDs for high accuracy.
- Coverage validation: any lines the AI misses are auto-grouped into "Uncategorized Changes" so nothing is lost.
- Prominent warning banner reminding users to always verify AI suggestions manually.
- Frontend: React + Vite
- Styling: Tailwind CSS (Custom Design System)
- Icons: Lucide React
- API: Octokit (GitHub REST API)
- AI: Native
fetch(no SDK dependencies) — supports Google Gemini, OpenAI, and Anthropic
- 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).
- Paste the full URL of a GitHub PR (e.g.,
https://github.com/owner/repo/pull/123). - Click "Analyze".
- 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).
- Click "Analyze with AI" in the header.
- If not configured, the AI setup modal opens — select a provider (Gemini recommended) and enter your API key.
- Choose whether to save the key locally (Remember me) or keep it for the current session only.
- The AI analyzes the diff and groups changes into named features in the sidebar.
- Toggle features on/off — dependencies are checked automatically.
- Use "Select All" / "Deselect All" for bulk actions.
⚠️ AI suggestions may be inaccurate. Always verify the selected lines manually before merging.
- Click "Merge Selected Lines".
- The app constructs a new commit on the target branch with only your selected changes and pushes it to GitHub.
- Click "Forget keys & exit" to clear all saved keys (GitHub PAT & AI API key) and return to the home page.
- Clone this repository.
- Install dependencies:
npm install
- Start the dev server:
npm run dev
- Open
http://localhost:5173to start merging!
- All API keys are stored only in your browser's
localStorage(if you opt in) or kept in memory for the session. - Keys are never sent to any server — all API calls go directly from your browser to GitHub / your AI provider.
- Click "Forget keys & exit" at any time to wipe everything.
Built for precision and speed.
