Uh oh!
There was an error while loading. Please reload this page.
feat(desktop,web): support Zed remote project deep links - #8866
Conversation
- Detect installed editor protocol handlers on desktop - Generate and validate editor-specific SSH links for Zed - Document remote editor opening behavior
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Warning Your free Security trial is over. An organization admin can activate Security or dismiss this notice. Comment |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This cross-cutting feature adds Zed remote-editor deep links, expands desktop custom-protocol handling, and changes the browser’s default remote-editor choices. The product-default change and security-sensitive external launching warrant human review. You can add or adjust custom eligibility rules. Learn more. |
juliusmarminge
commented
Sep 1, 2026
Related implementation: #7900 covers the same Zed SSH links and notes that Zed Preview may need to register the shared zed:// protocol before remote links open correctly. Please retain that setup guidance in this implementation. |
Implements the Zed remote-open use case tracked in Discussion #6801 (previously #7899). This uses the generalized remote-editor architecture rather than the dedicated Zed launcher approach from #4362.
What Changed
Why
It is nice to have T3 Code open in your editor of choice, given that the editor supports remote editing.
UI Changes
Before:

After:

Video:
Screen.Recording.2026-08-30.at.11.56.07.PM-compressed.mp4
Checklist
Note
Medium Risk
Changes URL allowlisting and external-open security rules for custom protocol handlers; mistakes could block legitimate editor links or allow unsafe schemes.
Overview
Adds Open in Zed for remote SSH environments alongside VS Code, using
zed://ssh/<host><path>deep links while VS Code forks keep the existingvscode-remoteshape.Editor contracts now use a shared
RemoteEditorOpenDefinition(scheme,urlHost,sshPathPrefix) instead of a bareremoteScheme, sobuildRemoteOpenUrland Electron’sopenExternalallowlist validate each editor’s URL pattern generically (including blocking credentials and malformed Zed links).On desktop,
hasProtocolHandlerprobes the OS via Electron soprobeRemoteEditorscan detect Zed/VS Code when the CLI is missing from PATH (e.g. Finder launches). Browser clients fall back to offering VS Code and Zed and rely on the OS handler. User docs describe remote editor opening behavior.Reviewed by Cursor Bugbot for commit 0104f84. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add Zed
zed://sshremote project deep link support across desktop and webEditorDefinition.remoteSchemewith a newRemoteEditorOpenDefinitiontype (scheme,urlHost,sshPathPrefix) in editor.ts, and adds aremoteOpendefinition for Zed usingzed://ssh/<host>/<path>buildRemoteOpenUrlto construct editor-specific deep links from the definition instead of hardcoded VS Code-style URLsElectronShell.hasProtocolHandlerin ElectronShell.ts usingElectron.app.getApplicationNameForProtocol;probeRemoteEditorsnow includes editors with a registered OS protocol handler even when their CLI is absent from PATHisRemoteEditorUrlto validate URLs against per-editor definitions (scheme, host, path prefix, SSH target + project path) and reject malformed or non-SSH linksvscodeandzedEditorDefinition.remoteSchemefield is removed; any out-of-tree code referencing it must migrate toeditor.remoteOpen.remoteSchemeForEditoris replaced byremoteOpenDefinitionForEditorMacroscope summarized 0104f84.