Feature Request: Cross-Editor Collaboration Protocol & Extension API #50999
Replies: 7 comments
-
Beta Was this translation helpful? Give feedback.
-
|
Development is temporarily hampered due to staff shortages and insufficient Claude Code quotas. Please be patient. |
Beta Was this translation helpful? Give feedback.
-
|
Development of Yuxu (玉虚宫) — the Zixiao Labs DevOps platform — has officially resumed. The frontend scaffolding (React + MUI + chen-the-dawnstreak router + Nasti bundler) and the Rust backend skeleton are in place. We are now building out the core UI: dashboard, repository management, issue tracking, merge requests, and CI/CD pipeline views. This platform will serve as the foundation for integrating the cross-editor collaboration protocol proposed in this discussion. The CRDT-based real-time collaboration layer is a first-class design goal, not an afterthought. Next milestones:
|
Beta Was this translation helpful? Give feedback.
-
|
If all goes well, the backend should be available today, at which point we will receive the first pull request for this discussion. |
Beta Was this translation helpful? Give feedback.
-
|
Of course, the front-end needs to be redesigned, so the CLI interface and the panel in Zed will be released first (the front-end and the panel on the Logos side will be released after the Claude Pro subscription quota is restored). |
Beta Was this translation helpful? Give feedback.
-
|
Update: JSON-RPC to Protobuf (aefanyl) is now deprecated. Cross-editor collaboration will now uniformly use Protobuf and be managed by YuXu DevOps. We believe this is closer to the native approach and avoids the performance overhead and technical debt caused by additional middleware. |
Beta Was this translation helpful? Give feedback.
-
|
We've started a new Claude Code thread, which will be implemented here; the pull request will be ready shortly. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Body
What are you proposing?
A cross-editor collaboration protocol and corresponding WASM extension API surface that allows third-party editors to participate in Zed collaboration sessions as first-class peers.
Concretely, we propose three additions:
collaborationWIT interface for WASM extensions — so extensions can observe and react to collaboration events (presence, buffer operations, cursor positions).Why does this matter?
The problem
Real-time pair programming today is fragmented by editor choice. If one developer uses Zed and their partner uses a different editor, they cannot collaborate in real-time — they must both switch to the same tool or fall back to screen sharing.
Zed already has one of the most sophisticated real-time collaboration systems in any editor (Protobuf RPC, CRDT-inspired conflict resolution, Lamport timestamps + vector clocks). But this system is currently closed — only Zed clients can participate.
What becomes possible
Who benefits
Are there any examples or context?
Precedent: Language Server Protocol (LSP)
Before LSP, every editor had its own language intelligence system. Microsoft published LSP as an open protocol, and now any editor can use any language server. The result was explosive growth in language tooling.
We believe real-time collaboration is at a similar inflection point. Zed's protocol is already the most capable implementation — publishing a subset as an open spec would establish Zed as the standard, much like VS Code's LSP.
Existing architecture analysis
We have studied Zed's collaboration implementation in detail:
crates/proto/proto/zed.protocrates/rpc/src/peer.rscrates/rpc/src/auth.rscrates/text/crates/collab/crates/extension_host/Cross-editor scenario
We are building Logos, an Electron + Vue 3 editor with Monaco. We want our users to pair program with Zed users. We are willing to:
Possible approach
Phase 1: Protocol specification (documentation only, no code changes)
Document the minimum viable subset of
zed.protothat an external client must implement:Session lifecycle (~10 messages):
Buffer synchronization (~8 messages):
Presence (~4 messages):
File operations (~6 messages):
This is roughly 30 messages out of 430+ — a manageable surface for external implementors.
Phase 2: Pluggable authentication
Abstract the auth flow in
crates/collab/src/auth.rs:Server configuration (environment variables or config file):
Phase 3: Collaboration WIT interface for extensions
Add a new WIT interface (
collaboration.wit) tocrates/extension_api/wit/:This would enable extensions like:
Phase 4: Reference bridge implementation
We will build Aefanyl — an open-source collaboration bridge that:
This is our responsibility to build and maintain, not Zed's. We mention it here for context on how the ecosystem would work.
Summary of asks
crates/collab/src/auth.rscrates/extension_api/wit/We are happy to contribute PRs for any or all of these.
About us
We are the team behind Logos IDE, a desktop code editor built with Electron + Vue 3 + Monaco Editor. We have an existing SSH remote development system, a Rust language analysis daemon, and both VS Code extension hosting and WASM extension support.
We believe Zed's collaboration infrastructure is the best in the industry, and we'd rather build on it than reinvent it. Our goal is interoperability, not competition.
Beta Was this translation helpful? Give feedback.
All reactions