Free · no signup · end-to-end encrypted
Aworkspaceinyourbrowser.
Sendthelink.
LiveCodeShare is a full development environment that opens in a tab — real editor, real terminal, real runtime — built so two people can code on one thing at once without installing anything.
How it works
Three steps. No fourth.
Pick a display name
No account, no email, no card. A name is only so people in your room know who is typing.
Create or join with a link
A workspace is protected by a password you choose. Send the link to anyone — they land at your door, ready to unlock.
Code together, run together
Shared cursors, shared terminal, live preview. Everything one person does, everyone sees — character by character.
The editor
Monaco — the engine behind VS Code — with your themes.
This is not a screenshot. Type in it. Switch the theme; these are the exact five themes the workspace offers. When you open the real IDE at the bottom of this page, it is this same editor, same keystrokes, same shortcuts.
scroll to wake the editor
Running code
One Run button. Three places it can take you.
The workspace decides what a file needs by itself — the same picker you will see in the embed below.
Instant preview
Press Run on an index.html and the page opens served by a service worker — external fonts, images and CDNs included, with a console relay back to the editor.
npm install, no server
A real Node.js runtime runs inside your browser tab: npm install resolves against an offline package cache, Express and Vite dev servers boot, previews ride on a virtual network.
Everything else
Forty-plus compiled languages run on remote sandboxes with live stdin. For your own toolchain, pair the site with a small local bridge over a six-digit PIN.
Together
Built around the moment two people look at one file.
- Presence
- Everyone in the room appears at the top of the screen. Join and leave notices are honest — no ghost collaborators.
- Cursors and selections
- Remote carets carry names and colors, and update as the other person types. Follow mode lets you ride along with someone else's editing.
- Voice, video, screen
- Calls open inside the room as floating frames — no third-party meeting link to paste anywhere.
- Teacher mode
- A host can hold a class to read-only, hand out files, and lock the door. Built for rooms of students, not just pairs.
The deal
What we promise, in plain terms.
Free
No premium tier exists to upsell you later. Permanent workspaces cost an admin key you give yourself.
No signup
A display name is the whole identity system. Nothing to confirm, nothing to recover.
Encrypted
Room traffic is end-to-end encrypted; the server relays what it cannot read.
Yours to leave
Workspaces disappear after an hour of silence unless you make them permanent. Export any workspace as a zip, any time.
Pro tools
The layer you stop noticing — until another editor lacks it.
Both demos below run the workspace's real code on this page. The formatter is the same pipeline Ctrl+S runs; the export is the same zip a workspace hands you. Nothing is simulated.
118 languages. One keystroke.
This button runs formatSource() — Prettier for the web tier, built-in beautifiers for everything else — on a deliberately unreadable line, then writes the result back into the demo room. In a workspace it is Ctrl+S.
before
const room={name:"pace",laps:3,drivers:["alex","maya"]};function greet(w){return "hello "+w+"!"}class Timer{constructor(){this.t=0}}const x=1,y=2;console.log(room,greet("pace"),x+y);Your code leaves when you do.
Any workspace exports as a standard .zip — every file, every folder, built in the browser with no server round-trip. This button zips the demo room exactly as a workspace would.
- index.html
- styles.css
- app.js
- notes.md
- race.js
- messy.js
- src/
The defaults are the safety net.
TrustEncrypted rooms
Room traffic is end-to-end encrypted. The server relays what it cannot read.
No accounts
A display name is the whole identity system. Nothing to leak, because nothing is collected.
Offline by hand
A local-offline workspace never touches the network — the room lives in your tab.
Host in charge
Teacher mode holds a room read-only, hands out files, and locks the door.
Questions
Asked often, answered straight.
Is the demo at the bottom of this page the real IDE?
Yes. It is the same components, stores and themes the workspace uses — the editor accepts keystrokes, the file tree creates files, and the Run button opens the real preview flow. It runs offline in your browser with networking disabled so it stays a quiet demo.
Do the people I invite need accounts?
No. They need the link and the room password. Their display name is the only thing they choose.
Where do my files live?
In the room, synced to everyone in it. Local-offline workspaces stay in your browser only. You can export everything as a zip whenever you want.
What happens when I stop paying?
Nothing changes. There is no payment to stop.
Which languages can run?
Front-end stacks run instantly in preview. Node.js projects run in-browser through WebNode. Compiled languages — C, C++, Rust, Go, Java, Python and more — run on cloud sandboxes, or on your own machine through the local bridge.
loading editor
Files behave like files.
This is the workspace's own file tree. Right-click it to create or rename; drag a file onto the editor later and it opens in a split. In an offline demo room everything stays local to your browser.
editor → index.html
Ctrl+K reaches everything.
The palette below is the real one — the same commands, fuzzy match and keyboard navigation as inside a room. Focus this page and press Ctrl+K (Cmd+K on a Mac). Try typing "theme".
editor → notes.md
One click, one tab, your code.
The button below calls the workspace's actual run path for HTML projects: it publishes index.html with its linked stylesheet and script through the preview service worker and opens the result in a new tab. Edit app.js in the specimen above first, if you like.
editor → app.js
Edit app.js in the editor first — the new tab runs whatever you saved.
Node.js boots in this tab. Really.
Below is the product's own WebNode bridge starting the same runtime worker a workspace uses — module resolution, streams, process semantics — then running hello.js and streaming its stdout back line by line. Nothing is mocked; nothing leaves your browser.
editor → hello.js
Your imports, drawn as a living map.
Graphify scans every file in the workspace and renders its dependency graph as an interactive force layout. The card below opens the real view over the demo files — src/main.js imports src/format.js, so there is exactly one edge to find. Drag it.
editor → src/main.js
A tutorial in the corner, code in the middle.
Rooms have chat-side YouTube embeds that pop out into floating frames — draggable, resizable, always above the editor. Paste any watch link below; this is the genuine player component, not a picture of one.
editor → styles.css
Inside the editor
Every keystroke is already collaborative.
Scroll. The pane on the left is the real Monaco editor — same instance the IDE uses. The pills, carets and washes are the real stores: typingUsers, cursor-store and live-selection, driven by the same socket events as a live room.
loading editor
type in the pane — it is the real editor
One file open, many waiting.
The strip is the workspace's own EditorTabs. Click a tab, the model swaps without remounting. As you scroll, the tour calls openTab() — the same store call a click in /ide makes.
index.html · index.html · 5 tabs in this demo
live store state
openTab("index.html") · tabs active
Someone is typing in app.js — you can tell.
The green pill is the real typing store: typingUsers keyed by userId, set by user-typing and cleared after 1.5s of quiet. Here Alex appears because the tour calls setTypingUser('tour_alex','Alex','app.js') — the exact call a live room makes.
app.js · Alex · app.js
live store state
scroll to activate · app.js
A caret with a name.
Maya's caret is a real Monaco decoration: cursor-store.setCursor plus ensureRemoteUserStyles. The hue comes from a hash of her userId, the label is a ::after with her name. Edit the file and the caret re-anchors to its decoration range.
app.js · Maya · line 3 · column 18
live store state
scroll to activate · app.js
Selections are live too.
Jordan dragged across four lines. That range is live-selection, throttled to 50ms, rendered as a tinted decoration with the same hue as the caret. Clear the drag and the store receives clear-live-selection.
styles.css · Jordan · styles.css · 4 lines selected
live store state
scroll to activate · styles.css
Everyone present, nothing ghosted.
All three appear as presence. When you scroll, the editor follows the file that user's cursor is in. Type in the left pane now — the next step still shows what you changed because the Yjs doc owns the text.
src/main.js · 3 peers · follow mode ready
live store state
scroll to activate · src/main.js
Your words stay as you type.
In a real room Yjs merges concurrent edits. In this offline demo the store upsert keeps your keystrokes. The file you edit here is the same file the final IDE below will open.
notes.md · Try typing here
live store state
scroll to activate · notes.md
Now touch it
This is the workspace. Not a picture of it.
Everything below renders from the product's own code: the top bar, the explorer, the editor, the Run menu, even the theme you pick here. Edit the page, press Run, watch the preview open in its own tab — then take the same two files into a real workspace and nothing will surprise you.
the workspace boots as you approach
Scroll — the desk slides up.
Open a workspace
Open a workspace. Send the link.
Thirty seconds from this sentence to sharing a cursor.
free · no signup · 30 seconds