Quick PR Studio
A VS Code extension that streamlines creating GitHub Pull Requests using a worktree-based workflow — no more context switching between your editor and terminal.
How It Works
- Select changed files — pick which modified/staged files to include
- Fill in PR details — commit message, branch name, PR title/body, target branch
- One click — the extension automatically:
- Creates a temporary git worktree from your current branch
- Copies selected files to the worktree
- Commits and pushes to a new branch
- Creates a PR via GitHub CLI (
gh pr create)
- Cleans up the temporary worktree
- Opens the PR URL in your browser
Prerequisites
| Tool |
Required |
Notes |
| Node.js |
Yes |
For building from source |
| Git |
Yes |
Must be authenticated with your remote |
GitHub CLI (gh) |
Yes |
Must be authenticated (gh auth login) |
Authentication
- gh CLI: Run
gh auth login or set GH_TOKEN / GITHUB_TOKEN environment variable.
- Git: Ensure your remote can be pushed to (HTTPS or SSH).
Usage
- Make changes in your repository and stage them in VS Code's Source Control panel
- Run command "Quick PR Studio: Create Pull Request" from the Command Palette (
Ctrl+Shift+P)
- Select the files you want to include
- Fill in the form and click Create PR
Features
- Worktree isolation: Your working directory stays untouched — all operations happen in a temporary worktree
- File-level selection: Include only the changes you want in each PR
- AI-powered generation (optional): Auto-generate PR title, body, commit message, and branch name using OpenAI-compatible APIs — only fills empty fields, preserving your existing input
- SSH fallback: Automatically retries push via SSH if HTTPS connection fails
- Customizable rules: Project-level PR title/body/commit message/branch name templates via
.quick-pr-studio/ directory
- Auto-initialized config:
.quick-pr-studio/ directory with default settings is created automatically on first activation
- Full debug logging: Complete AI prompts and raw responses are logged to
.quick-pr-studio/log.log for troubleshooting
- Loading indicators: Buttons disable automatically on click and show progress text; VS Code notifications display real-time progress for each step
Configuration
| Setting |
Default |
Description |
quick-pr-studio.ai.enabled |
false |
Enable AI generation for PR title and body |
quick-pr-studio.ai.apiKey |
"" |
API key for OpenAI-compatible API |
quick-pr-studio.ai.baseUrl |
"" |
Base URL for OpenAI-compatible API |
quick-pr-studio.ai.model |
gpt-4o-mini |
Model name for OpenAI-compatible API |
quick-pr-studio.ai.promptTemplate |
(built-in) |
System prompt for AI generation |
quick-pr-studio.cleanupWorktreeAfterPr |
true |
Delete worktree automatically after PR creation |
Project-level Configuration
Place .quick-pr-studio/settings.json in your project root:
{
"defaultBaseBranch": "main"
}
Optional rule files:
.quick-pr-studio/PR title rule.md — Custom title format rules
.quick-pr-studio/PR body rule.md — Custom body template rules
.quick-pr-studio/commit message rule.md — Custom commit message format rules
.quick-pr-studio/branch name rule.md — Custom branch naming rules
Development
This is a VS Code extension. To run from source:
# 1. Install dependencies
npm install
# 2. Open the project in VS Code
code .
# 3. Press F5 to launch the Extension Development Host
The extension activates on the command quick-pr-studio.createPr.
Build
npm run build
Project Structure
src/
├── extension.ts # Extension entry point & command registration
├── inputService.ts # Webview-based PR form UI
├── gitService.ts # Git operations (worktree, commit, push, diff, log)
├── prService.ts # GitHub CLI interaction (gh pr create)
├── projectConfig.ts # Project-level configuration loader
├── aiService.ts # AI-powered PR content generation (title, body, commit msg, branch name)
└── logger.ts # File-based structured logging
License
MIT