You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hosting Orbit in Zed and publishing it to Zed's extension registry, in steps that leave the current VS Code development and release flow untouched.
What Zed allows (checked September 2026)
Extensions are Rust compiled to wasm32-wasip2; they cannot host a web page. The registry (zed-industries/extensions) accepts language, language-server/debugger, theme, snippet and MCP server extensions; agent-server and slash-command extensions are deprecated and no longer accepted. An MCP server extension may not bundle its server: it downloads it (npm, in our case).
Zed starts the server as an MCP process over stdio with the project root as its working directory, so the Orbit host for Zed is a Node package: it serves the 3D page on localhost, runs Claude Code as the VS Code extension does, and answers graph questions to Zed's agent as MCP tools.
Publishing is a PR to the registry that adds a git submodule pointing at the extension's repository and an entry in extensions.toml; an extension may live in a subdirectory (path = "apps/zed"), with its LICENSE inside that directory. Updates bump the submodule and the version. Rules: HTTPS submodule URL, the commit on a branch, one extension per PR, at most three open PRs, reply to review within three weeks.
How this stays out of the way
yarn build, yarn typecheck, yarn boundaries, yarn harness and yarn smoke never need Rust: apps/zed has check and package targets, no build.
Rust and the zed-extension CLI live in one CI job that runs only when apps/zed changes.
Zed gets its own release group and tag (zed-v<version>); the VS Code (v*) and npm (*-v*) jobs keep working as they do, with one exclusion.
The submodule lives in our fork of the registry, never in this repository.
The registry PR is opened by a script that is skipped without its token, so a release never blocks on Zed.
The server is an npm package with its own releases (server-v*); the extension pins the version it installs.
Hosting Orbit in Zed and publishing it to Zed's extension registry, in steps that leave the current VS Code development and release flow untouched.
What Zed allows (checked September 2026)
wasm32-wasip2; they cannot host a web page. The registry (zed-industries/extensions) accepts language, language-server/debugger, theme, snippet and MCP server extensions; agent-server and slash-command extensions are deprecated and no longer accepted. An MCP server extension may not bundle its server: it downloads it (npm, in our case).extensions.toml; an extension may live in a subdirectory (path = "apps/zed"), with its LICENSE inside that directory. Updates bump the submodule and the version. Rules: HTTPS submodule URL, the commit on a branch, one extension per PR, at most three open PRs, reply to review within three weeks.How this stays out of the way
yarn build,yarn typecheck,yarn boundaries,yarn harnessandyarn smokenever need Rust:apps/zedhascheckandpackagetargets, nobuild.zed-extensionCLI live in one CI job that runs only whenapps/zedchanges.zed-v<version>); the VS Code (v*) and npm (*-v*) jobs keep working as they do, with one exclusion.server-v*); the extension pins the version it installs.Steps, in order
@orbit-code/coreapps/server, the local Orbit host, published to npm as@orbit-code/server--mcpmode, graph tools andorbit_openfor Zedapps/zed, an MCP context-server extension that installs@orbit-code/serverzedrelease group, TOML version actions andzed-vtagsapps/zedwith Rust and thezed-extensionCLIsubmit.mjsopens the PR tozed-industries/extensionson azed-vtag#4, #5, #6 and #7 can proceed in parallel with #2 and #3; only #8 needs all of them.
References
zed_extension_api0.7.0:context_server_command,npm_install_package,node_binary_path,ContextServerSettings::for_projectzed-extensions/postgres-context-serverzed-industries/extensions/.github/workflows/ci.yml(Rust 1.90,wasm32-wasip2, pinnedzed-extensionCLI,pnpm package-extensions,pnpm sort-extensions)