Configuration
PR Pilot has a dedicated, full-size settings window accessible from within IntelliJ IDEA. It is split into three tabs: Git Providers, AI Provider, and Skills & Prompts.
PR Pilot has a dedicated, full-size settings panel accessible from within VS Code. It is split into three tabs: Git Providers, AI Provider, and Skills & Prompts.
Opening the Settings Panel
- Go to Settings → PR Pilot in the IDE menu bar, or
- Click the ⚙ gear icon in the PR Pilot tool window toolbar.
- The settings window opens as a tabbed dialog.
- Click the ⚙ gear icon in the PR Pilot Activity Bar panel toolbar, or
- Open the Command Palette (⌘⇧P on macOS, Ctrl+Shift+P on Windows/Linux) and run PR Pilot: Open Settings.
- The settings panel opens as a VS Code webview with three tabs.
Why a dedicated window? The settings dialog provides enough room for multi-line prompt editors and the Bitbucket PAT table — something the standard IntelliJ settings tree couldn't accommodate inline.
Why a dedicated panel? The settings webview provides enough room for multi-line prompt editors and the Bitbucket PAT table — something the standard VS Code settings UI couldn't accommodate.
Tab 1 — Git Providers
This tab controls which version-control platform PR Pilot connects to, and stores the authentication tokens needed to call the API.
Active Provider Selector
At the top of the tab is an "Active provider" dropdown. Select either Bitbucket or GitHub. The card below switches to show the relevant settings. Only one provider is active at a time.
Bitbucket Cloud
Bitbucket has moved to repository-level Personal Access Tokens (PATs). Because different repositories in the same workspace may have different tokens, PR Pilot maintains a per-repo PAT registry — a table where each row maps a workspace/repo pair to its access token.
Adding a repository
- Click Add Repo below the table.
- A dialog appears with three fields:
- Workspace — the Bitbucket workspace slug (e.g.
myteam) - Repo Slug — the repository slug (e.g.
backend-api) - Access Token — the HTTP access token generated in Bitbucket
- Workspace — the Bitbucket workspace slug (e.g.
- Click OK. The row appears in the table immediately.
Generating a Bitbucket PAT
- Log in to bitbucket.org.
- Navigate to your repository → Repository settings → Access tokens.
- Click Create Repository Access Token.
- Give it a name (e.g.
PR Pilot) and grant the following permissions:Pull requests: Read— to list and view PRsPull requests: Write— to approve, decline, and merge
- Copy the token — you'll only see it once.
One token per repository. Bitbucket repository-level PATs are scoped to a single repo. If you have five repositories, you need five rows in the table.
Editing or removing a repository
Select the row in the table and click Remove Repo to delete it, or double-click a cell to edit the value in place.
How the plugin selects the token
When PR Pilot loads pull requests, it inspects the remote URL of the open project to determine the workspace and repoSlug, then looks up the matching row in the table. If no row is found, you'll see a clear error message instead of a silent 401.
GitHub
GitHub uses a single Personal Access Token (classic or fine-grained) that covers all your repositories.
Generating a GitHub PAT
- Go to GitHub → Settings → Developer settings → Personal access tokens.
- Choose Fine-grained tokens (recommended) or Tokens (classic).
- Grant the following repository permissions:
Pull requests: Read and writeContents: Read(for diff access)Metadata: Read(required by fine-grained tokens)
- Generate and copy the token.
Paste the token into the Personal Access Token field in the GitHub card and click Apply.
Tab 2 — AI Provider
PR Pilot supports three AI backend types. Select one from the "AI provider" dropdown and fill in the card that appears below.
OpenAI
| Field | Description | Default |
|---|---|---|
| API Key | Your OpenAI secret key (sk-…) | — |
| Model | Model ID to use | gpt-4o |
Recommended models: gpt-4o (best quality), gpt-4-turbo, gpt-3.5-turbo (fastest/cheapest).
Cost tip: AI summary prompts can be long (especially for large PRs with many files). gpt-4o-mini offers a good balance of cost and quality for everyday reviews.
OpenAI-Compatible
Any server that exposes the POST /v1/chat/completions endpoint in OpenAI format:
| Field | Description | Example |
|---|---|---|
| Base URL | Root URL of your compatible server | https://api.together.xyz |
| Model | Model name as the server expects it | mistralai/Mixtral-8x7B |
| API Key | Key required by the server (may be optional for local setups) | your-key |
Works with: LM Studio, vLLM, llama.cpp server, Together AI, Groq, Anyscale, and more.
Ollama
Run large language models locally with zero data leaving your machine.
| Field | Description | Default |
|---|---|---|
| Base URL | Ollama server address | http://localhost:11434 |
| Model | Model name as shown in ollama list | llama3 |
Quick Ollama setup
# Install Ollama (macOS)
brew install ollama
# Pull a capable code model
ollama pull llama3
# or for a stronger model:
ollama pull codellama:13b
# Start the server (runs on :11434 by default)
ollama serve
Then set the base URL to http://localhost:11434 and the model name to llama3 (or whichever model you pulled).
Tab 3 — Skills & Prompts
This tab provides inline text editors for the three skill Markdown files stored in your project under .idea/pr-pilot/skills/.vscode/pr-pilot/skills/.
| File | Purpose |
|---|---|
system_prompt.md | Defines the AI's persona, tone, and output format |
review_rules.md | Review focus areas: security, performance, error handling, etc. |
coding_standards.md | Team-specific naming conventions, style rules, and architecture guidelines |
Changes saved here are immediately written to the .md files on disk. You can also edit the files directly in any text editor or VS Code's built-in Markdown editor. See the Skills guide for a deep-dive on customisation.
Tab 4 — Jira Integration
PR Pilot can automatically sync review outcomes back to your Atlassian Jira project. When you approve, merge, or decline a pull request, PR Pilot detects the linked Jira issue and posts a comment — and on a declined PR, also reassigns the issue back to the PR author.
Optional feature. Jira integration is entirely opt-in. If the Base URL, Email, or API Token fields are blank, the integration is silently skipped — no errors are shown.
Fields
| Field | Description | Example |
|---|---|---|
| Jira Base URL | The root URL of your Atlassian Jira instance | https://myteam.atlassian.net |
| The Atlassian account email used to authenticate | you@example.com | |
| API Token | An Atlassian API token (not your password) | ATATT3x… |
| Issue Key Pattern | Optional regex to match issue keys in PR data. Leave blank for the default pattern | [A-Z]+-\d+ |
Generating an Atlassian API Token
- Log in to id.atlassian.com → Security → API tokens.
- Click Create API token.
- Give it a label (e.g.
PR Pilot) and click Create. - Copy the token — it is only shown once.
Paste the token into the API Token field. Enter the email address you use to log in to Jira in the Email field.
How issue keys are detected
PR Pilot scans the following PR fields in order and takes the first match:
- PR title
- PR description
- Source branch name
- Target branch name
- PR URL
The default regex pattern is [A-Z][A-Z0-9]+-\d+ (case-insensitive), which matches standard Jira keys such as PROJ-123 or MYAPP-42. Specify a custom pattern in the Issue Key Pattern field if your project keys don't match the default.
What happens on each action
| PR Action | Jira Effect |
|---|---|
| Approve | Posts "Code Review Passed." as a comment on the linked issue |
| Merge | Posts "Code Review Passed." as a comment on the linked issue |
| Decline | Posts the AI review summary (or a fallback message) as a comment, then reassigns the issue to the PR author |
Required Jira permissions: The Atlassian account must have Browse Projects and Add Comments permissions on the target project. For decline/reassign, it also needs Assign Issues permission.
Settings Persistence
PR Pilot stores settings in two places:
- Non-sensitive settings (AI provider, model names, Jira base URL, etc.) are stored in a file called
PRPilot.xmlin the IDE configuration directory, withRoamingType.DISABLEDso they stay local to this machine. - Sensitive settings (GitHub PAT, OpenAI API key, Jira API token, Bitbucket PATs) are stored via IntelliJ PasswordSafe, which is backed by the OS system keychain (macOS Keychain, Windows Credential Manager, KWallet on Linux). They are never written to disk in plaintext.
Security note: Access tokens are isolated in PasswordSafe and never appear in PRPilot.xml. They cannot be accidentally shared or synced.
PR Pilot stores settings in two places:
- Non-sensitive settings (AI provider, model names, Jira base URL, etc.) are stored in VS Code's global configuration under the
prPilot.*key namespace — typically in your profile'ssettings.json. - Sensitive settings (GitHub PAT, OpenAI API key, Jira API token, Bitbucket PATs) are stored in VS Code SecretStorage, which is backed by the OS system keychain (macOS Keychain, Windows Credential Manager, libsecret on Linux). They are never written to disk in plaintext.
Security note: Access tokens never appear in settings.json. They are isolated in SecretStorage and cannot accidentally be synced via VS Code Settings Sync unless you explicitly enable secret sync.
Settings are written immediately on every change, so you should never lose data after a crash or reload.