Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
The Problem: A Simple Setting That Should Work, But Doesn’t
When I’m developing, I constantly need to test my app. I run npm run dev, see link in the terminal, and I want to Cmd+Click that URL to quickly open it in Chrome. This should be a simple, frictionless action that takes half a second.
Instead, Cursor opens it in its internal browser. Every. Single. Time.
This breaks my flow. I’m in the zone, iterating quickly, and suddenly I’m stuck in Cursor’s internal browser instead of my actual browser where I have all my dev tools, extensions, and workflow set up. I have to manually copy the URL, switch to Chrome, paste it, and navigate there. What should be instant becomes a multi-step process that kills momentum.
This should be fixable with a simple setting. VS Code has terminal.integrated.openLinks that controls exactly this behavior. I’ve set it to “external”. I’ve tried every related setting I can find. Nothing works. The settings are being completely ignored.
Steps to Reproduce
Steps to Reproduce
Open Cursor IDE
Open integrated terminal
Run any command that outputs a URL (e.g., npm run dev, echo “link”)
Cmd+Click the URL
Observe it opens in Cursor’s internal browser instead of Chrome
This happens 100% of the time, regardless of settings.
Expected Behavior
Expected vs Actual Behavior
Expected: When I click a URL in the terminal, it opens in my system’s default browser (Chrome, set in macOS System Settings).
Actual: URLs clicked in the terminal always open in Cursor’s internal browser, regardless of settings.
Operating System
MacOS
Current Cursor Version (Menu → About Cursor → Copy)
OS: macOS Sequoia 15.2 (Darwin arm64 24.6.0)
Hardware: Mac mini M4
Default Browser: Google Chrome (confirmed in System Settings)
Cursor Version: 2.1.50
VS Code Version: 1.105.1
Commit: 56f0a83df8e9eb48585fcc4858a9440db4cc7770
Build Date: 2025-12-06T23:39:52.834Z (16 hrs ago)
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
Additional Information
Based on my investigation, here’s the architecture:
xterm.js (the terminal library) detects the link click and fires an event
VS Code’s terminal link handler should intercept this and check terminal.integrated.openLinks
If set to “external”, it should call Electron’s shell.openExternal(url) which respects macOS default browser settings
Cursor’s modifications appear to be intercepting terminal link clicks BEFORE VS Code’s handler runs, routing them to the internal browser instead
Root Cause Analysis
I believe Cursor is doing one of the following:
Intercepting terminal link clicks before VS Code’s handler: Cursor’s modified terminalLinkHandler.ts is catching the click event first and routing to internal browser, never checking the terminal.integrated.openLinks setting.
UI toggle overriding JSON settings: There may be a UI setting (like “Show Localhost Links in Browser” in Tools & MCP) that takes precedence over settings.json settings, but it’s not clear which setting controls terminal links specifically.
Hardcoded behavior: Cursor may have hardcoded internal browser behavior for all terminal links, ignoring user preferences entirely.
Configuration Attempted
I’ve added all of these to ~/Library/Application Support/Cursor/User/settings.json:
{
“terminal.integrated.openLinks”: “external”,
“workbench.externalBrowser”: “default”,
“workbench.editor.openLinks”: “external”,
“workbench.editor.customEditor.openLinks”: “external”
}
I’ve also:
Confirmed Chrome is set as default browser in macOS System Settings
Fully quit and restarted Cursor after each settings change
Verified settings persist in the JSON file
Checked for workspace-specific settings that might override
None of this works. The settings are being completely ignored.
Does this stop you from using Cursor
No - Cursor works, but with this issue
