WebSync Live β VS Code extension for collaborative web development in education.
A teacher opens a session, students join and see code, preview, and cursor positions in real time β like CodeTogether + Live Server + Figma, all inside VS Code.
WebSync.mov
| Feature | Description |
|---|---|
| π΄ Live Session | Host creates a session, students join with a code |
| π File Sync | All workspace files are synced from host to students instantly |
| βοΈ Incremental Edits | Only changed ranges are sent β no cursor jumps, no full-file replacement |
| ποΈ File Navigation Sync | Host switches file β students' editor follows automatically |
| π±οΈ Collaborative Cursors | Figma-style colored cursors with names for all participants |
| π¬ Code Comments | Add inline comments on any line, visible to everyone |
| π Live Preview | Built-in iframe preview with live reload on every save |
| π Role System | Host Β· Admin Β· Editor Β· Viewer β each with different permissions |
| π ngrok Tunnel | Share your session over the internet through CG-NAT with one click |
| Run Python, JS, C++, Go, Swift and more β output streams to built-in Console | |
| π Change Server Folder | Switch the served root folder without restarting |
| π·οΈ Status Bar | Shows your nickname, session code and role at the bottom of VS Code |
| Role | Edit Files | Add Comments | Change Roles | Kick Users |
|---|---|---|---|---|
| Host | β | β | β | β |
| Admin | β | β | β (editors/viewers) | β |
| Editor | β | β | β | β |
| Viewer | β | β | β | β |
- VS Code 1.85+
- Node.js β bundled with VS Code (no extra install)
- ngrok CLI (optional, only for internet sharing)
Install:brew install ngrok(macOS) or download from ngrok.com/download
- Enter your display name
- Click Create Session
- Server starts automatically on
http://localhost:3000 - Share the session code with students
(or use π Share β ngrok for internet access) - Open any file β students see it in their editor instantly
- Enter your display name and the session code
- Enter the server URL (e.g.
ws://localhost:3000or the ngrok WSS URL) - Click Join Session
- Files are synced automatically β no setup needed
- Sometimes you need twice join session.
- Get a free auth token at dashboard.ngrok.com
- In the WebSync panel click π Share
- Paste your authtoken and click Start Tunnel
- Click π Copy Join Info for Students β paste it to your students
websync-live/ βββ index.js # Extension entry point βββ package.json # Extension manifest βββ client/ β βββ client.js # WebSocket client (EventEmitter) βββ server/ β βββ server.js # Express + WebSocket server β βββ server/ β βββ permissions/ # Role-based permission system β βββ code/ # Comment store β βββ webview/ # Live reload injector βββ ui/ βββ index.html # Sidebar webview UI βββ public/ βββ main.js # Webview JS logic βββ style.css # Styles βββ media.css # Media queries | Command | Description |
|---|---|
Websync Live: Open Preview | Open preview in a panel |
Websync Live: Start Server | Start the local server |
Websync Live: Create Session | Create a new session |
Websync Live: Join Session | Join with a code |
Websync Live: Add Comment | Add comment on current line |
Websync Live: Change Server Folder | Change the served root folder |
Websync Live: Run Code | Run the active file |
Websync Live: Stop Code | Stop the running process |
Websync Live: Disconnect | Leave the session |
- MazyLawzey β main author
- rionn11 β main contributor
If you installed our extension from the VS Code Marketplace, please read this before opening an issue.
The Marketplace version has significant limitations and restrictions, which may cause unexpected errors or missing functionality. These issues are often related to the Marketplace build itself and not the core project.
π¨ Before creating an issue, please make sure you are using the stable version from our official GitHub Releases.
The version published in GitHub Releases is the original and fully stable build without the limitations present in the Marketplace version. Ngrok is no longer available in russia, so use VPN. Or host your own server.
π Please download and install the extension directly from GitHub Releases for the best and most stable experience.
If the issue still persists after installing the GitHub release version, feel free to open an issue β weβll be happy to help.
Thank you for your understanding and support!