MergeHarbor for VS Code
Review your changes before you push, see findings where the code is, and check whether
your pull request is ready to merge, without leaving the editor. Works in VS Code and in
editors built on it, such as Cursor, Windsurf and VSCodium.
Install
- VS Code Marketplace: search for "MergeHarbor" in the Extensions view, or run
code --install-extension mergeharbor.mergeharbor.
- Open VSX (Cursor, Windsurf, VSCodium and other editors): search for "MergeHarbor" in
the Extensions view.
- From a file: download
mergeharbor-<version>.vsix and run
code --install-extension mergeharbor-<version>.vsix (or Extensions → … → Install from VSIX).
Sign in
Run MergeHarbor: Sign in. The extension shows a code and opens the console, where you
approve it and pick an organization: the same device sign-in as mh login. It receives an
organization API key named CLI: <editor> on <computer>, valid 90 days, with your role. The
key is kept in the editor's secret storage (the operating system's keychain where available),
never in settings files. MergeHarbor: Sign in with an API key accepts a key from
Settings → API keys instead. MergeHarbor: Sign out forgets the key; revoke it in the
console if you no longer need it.
For a self-hosted MergeHarbor, set mergeharbor.apiUrl first.
Review your changes
MergeHarbor: Review my changes reviews what mergeharbor.defaultScope says:
| Command |
What it reviews |
| Review working tree |
Commits on this branch plus staged, unstaged and new files, against the merge base with the default branch |
| Review staged changes |
What you are about to commit |
| Review branch against base |
Commits on this branch only (what you are about to push) |
The review uses the repository's index, .mergeharbor configuration, rules and knowledge,
like a pull request review. Nothing is posted to the code host. Diffs up to 4 MiB and 3000
files; organizations can start 30 local reviews an hour.
Cost
Before each review the extension asks the server what it will cost and shows it: the tier,
its credits (Standard 1, Deep 3, Max 10), whether the organization's credit budget caps the
tier, and the credits used this month. Nothing runs until you confirm. The repository's
configuration can raise the tier; the result says what was charged. Local reviews from the
editor count as local reviews in billing and appear in Insights under the IDE source.
Findings in the editor
Findings appear in the Problems panel and as squiggles: critical as errors, major as
warnings, minor as information, nits as hints, filtered by mergeharbor.severityThreshold.
Hover a finding for the explanation and suggested fix. The light bulb offers:
- Apply suggested fix replaces the lines with the suggestion.
- Explain opens the full explanation beside the code (no credits).
- Ask about this asks a question in the pull request's conversation (findings of a pull
request; answers use 1 credit for every 10). For local findings it shows the explanation.
- Copy fix prompt for my coding agent copies a prompt you can paste into your agent.
- Dismiss asks why. "False positive" and "Not applicable" teach MergeHarbor to avoid
similar comments, like dismissals in the console.
Pull request panel
The MergeHarbor view in the activity bar shows the pull request for the current branch: its
review summary, confidence score, open findings (click to jump to the line), the merge gate
verdict, readiness score and checklist, with links to the console and the code host. Open
findings of the pull request also appear in the editor (turn this off with
mergeharbor.showPullFindings).
Status bar
Shows the review state (ready, reviewing, findings, failed) and the credits used this month.
Click it for the review and sign-in commands.
Settings
| Setting |
Default |
What it does |
mergeharbor.apiUrl |
https://app.mergeharbor.com |
The MergeHarbor server (https; http only for localhost) |
mergeharbor.tier |
auto |
auto lets the configuration choose; standard, deep or max request a tier |
mergeharbor.defaultScope |
all |
all, staged or committed for "Review my changes" |
mergeharbor.autoReviewOnSave |
false |
Review the working tree after saving (at most every 30 seconds) |
mergeharbor.autoReviewMaxCredits |
1 |
Automatic reviews run only when they cost at most this many credits, without asking |
mergeharbor.severityThreshold |
minor |
Lowest severity shown |
mergeharbor.showPullFindings |
true |
Show the pull request's open findings in the editor |
Privacy
A review sends the diff of the chosen changes, the branch name and the merge-base commit to
your MergeHarbor server. The diff is deleted once the review finishes; findings are kept and
listed in the console under Pull requests → Local. Reviews run only in trusted workspaces.
The extension sends no telemetry.
Development
cd ide/vscode
npm ci
npm run typecheck && npm run lint && npm test
npm run build # dist/extension.js
npm run package # mergeharbor-<version>.vsix
Press F5 in VS Code with this folder open (or run code --extensionDevelopmentPath=$PWD)
to try it. Point mergeharbor.apiUrl at http://localhost:8080 for a local server.
Release
- Bump
version in package.json and add a CHANGELOG.md entry.
npm run package
npx @vscode/vsce publish --packagePath mergeharbor-<version>.vsix (needs VSCE_PAT, an
Azure DevOps personal access token with the Marketplace → Manage scope for the
mergeharbor publisher).
npx ovsx publish mergeharbor-<version>.vsix -p "$OVSX_PAT" (an Open VSX access token
for the mergeharbor namespace).
.github/workflows/vscode-extension.yml does steps 2–4 for tags named vscode-v<version>
once GitHub Actions is enabled for the repository.