Join a live CodeOrbit collaborative room from inside real VS Code — edits and cursors sync live with everyone else in the room, including people on the web client.
Try it (Extension Development Host)
npm install (from this vscode-extension/ directory)
npm run watch (leave running — rebuilds on save)
Open this folder in VS Code and press F5 — opens a new "Extension Development Host" window with the extension loaded
In that new window, make sure a CodeOrbit server is running (npm run dev at the project root) and reachable at the configured codeorbit.serverUrl (default http://localhost:4000)
Run CodeOrbit: Sign In (Cmd/Ctrl+Shift+P), then CodeOrbit: Join Room… with a room code from the web app
The room's files appear as a workspace folder in the Explorer and in the CodeOrbit sidebar (activity bar icon)
Install as a regular extension (side-load)
npm run package # produces codeorbit-vscode-<version>.vsix
code --install-extension codeorbit-vscode-0.1.0.vsix
Or use the Extensions view's "Install from VSIX…" command. No marketplace publish needed or intended.
What's verified so far vs. what needs manual checking
Verified via the command line (no VS Code UI automation tool is available to drive this from here):
TypeScript compiles cleanly (npm run compile)
The extension bundles correctly, both dev and production (npm run build)
Unit tests for the two trickiest pieces of pure logic pass (npm test): the Yjs-delta→text-edit conversion algorithm, and the file path→tree nesting logic
The extension packages into a valid, installable .vsix (npm run package)
Not yet verified — needs a real VS Code Extension Development Host session (F5) with a live CodeOrbit server and a second participant (e.g. the web client open in a browser) side by side:
Sign-in, session persistence across restarts, and the 10-minute proactive token refresh
Live two-way editing: typing in VS Code appears in the web client and vice versa, with no feedback loops
The dirty-flag mitigation (tabs shouldn't show a false "unsaved changes" prompt)
Read-only enforcement for viewer-role users and locked/breakout-restricted files
Remote cursor/selection decorations, including split-view panes
File create/rename/delete from VS Code's Explorer showing up in the web client's file tree, and vice versa
Reconnection after the server restarts mid-session
See the build-order/verification sections of the project's plan document for the specific step-by-step checks for each of these.
Configuration
codeorbit.serverUrl (default http://localhost:4000) — the CodeOrbit server's base URL.
Known, deliberate limitations
One active room per VS Code window (matches the web client's one-room-per-tab model). Two rooms at once means two VS Code windows.
A local Ctrl+Z/Cmd+Z can, in principle, revert a remote peer's edit instead of your own last edit — VS Code's extension API has no way to apply an edit that's fully invisible to the local undo stack. The same trade-off VS Code's own Live Share has historically accepted.
Empty directories have no representation (paths are flat strings with implicit / nesting) — matches the web client's own limitation.