The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Vibelive listing page.
Multiplayer for agentic coding terminals — shared Claude Code/Codex/Gemini sessions with live Figma-style cursors, presence, and in-terminal chat.
Part of the Vibe Suite — companion tools for agentic coding CLIs (Claude Code, Codex, Gemini, Grok/pi, Kimi). Ships as CLI + npm package + MCP server.
Local-first: runs on your own machine. v0 is a host-authoritative local/LAN session: one machine hosts a wrapped agent and owns the truth; peers join over a local WebSocket. Full end-to-end-encrypted relay fan-out to ~1,000 participants is on the roadmap (see docs/tech-spec.md). Session sharing is gated by the consent ledger in @pooriaarab/vibe-core (scope share:session), and is revocable.
Requires Node ≥ 18.
Share a wrapped agent (anything you'd run in a terminal) and print a join URL:
The host prints something like:
From another terminal (or another machine on the LAN):
The joiner sees the live agent output plus a presence/chat line. Slash commands while joined:
/drive — request the write token (queued FIFO behind other drivers)/release — relinquish the token/type <text> — send input to the wrapped agent (driver only)/quit — leave the sessionEverything else you type is sent as chat.
Exactly one participant — the driver — holds the write token at any time (see src/arbitration.ts). Everyone else always has read + chat + cursor; only agent-write is arbitrated, so two people never interleave garbage into one stdin. The host user starts as the driver.
Run vibelive as a Model Context Protocol server over stdio:
It exposes two tools an agent can call:
| tool | description |
|---|---|
host_session | Start a host+relay wrapping a command; returns the ws:// join URL. |
session_status | List active sessions (id, url, participants, current driver). |
Example (Claude Code / any MCP client config):
Three channels over one WebSocket, each with the guarantees its data needs (details in docs/tech-spec.md):
WriteArbiter so there is never more than one driver.The correctness-critical piece is src/arbitration.ts — a pure, fully unit-tested state machine enforcing "never two concurrent agent-writers," FIFO turn-taking, and "release when not driver is a no-op."
Interactive, self-contained UX prototype (no build, no network): open docs/prototype.html in a browser.
docs/tech-spec.md — scale (10/100/1000), transport tiers, tests.docs/vibe-core-spec.md — shared suite spine (cascade, hooks, consent).node-pty) for full TTY semantics (resize, raw-mode programs, signals), cursor interpolation, and a richer terminal renderer.MIT