Nebula Slides
SEMANTIC SLIDE FORMAT
Nebula Slides
Slides that read like a document and edit like an API — one semantic source for people and their agents.
HTML + SVG
MCP-native
Undo-safe
One slide, three ways to edit
MCP tools
Agents patch nodes, not pixels.
Browser studio
Direct-manipulation editing with live SVG.
Local agent
Claude Code or Codex, right in the panel.
Built for pixels, not agents
THE GAP
Built for pixels, not agents
Traditional slide tools bury structure inside a canvas or a binary blob. An agent can nudge a rectangle, but it can't read the deck, reason about it, or edit it without guesswork.
What breaks with canvas tools
  • Opaque formats an agent can't parse.
  • No stable node ids to target.
  • Pixel diffs instead of structured edits.
  • Every tweak risks the whole layout.
One slide. Every surface.
ONE SOURCE OF TRUTH
One slide. Every surface.
slide.html
One semantic source of truth.
Rendered SVG
Pixel-perfect output, still fully editable.
Browser studio
Direct-manipulation editing with live SVG.
MCP tools
Agents edit by validated operations.
Local agent
Claude Code or Codex, in the panel.
An API for your slides
FOR AGENTS
An API for your slides
Agents don't wrestle a canvas. They call a small, validated vocabulary of operations against stable node ids — and get back structure, not screenshots.
TYPICAL MCP RESPONSE
~1 KB
Summary and stack tree by default — down from ~215 KB of inlined SVG.
37 OPERATIONS
One vocabulary
set_text, set_box, insert_node, connectors, booleans — every edit is a typed op.
COMPACT BY DEFAULT
Small responses
Get a summary and stack tree, and opt in to heavy fields only when you need them.
EVERY WRITE UNDOABLE
Safe to try
Batches apply atomically and session-scoped history makes any write reversible.
A studio in the browser
FOR PEOPLE
A studio in the browser
Open the deck in a direct-manipulation editor. Select and drag any node, watch the SVG update live, and reach for layers, an inspector, and a dark theme when you want them.
Select & drag
Click any node — even an arrow — and move it. Fat hit targets make small things easy.
Live SVG
Every edit re-renders instantly to the same SVG an agent would produce.
Layers & inspector
Walk the node tree, retarget selection, and tune appearance field by field.
Light & dark
A theme-aware workspace that follows your system or your toggle.
Your agent, in the panel
FOR BOTH
Your agent, in the panel
Describe a change in plain language. Claude Code or Codex edits the deck through the very same MCP tools — streaming each edit as it lands, and every one is undoable.
ASSISTANT
"Make the title shorter and tighten the bullets."
▸ slide_apply_ops · 2 ops on 03-model.slide.html
Done — 2 edits applied. Undo with Cmd/Ctrl+Z.
Claude Code or Codex
Pick whichever local CLI you have installed — per conversation.
Streams its work
Watch each tool call land live, then the slide refreshes on its own.
Resume or restart
Continue the same thread across turns, or start a fresh conversation.
Share the deck, keep your AI
LOCAL-FIRST COLLAB
Share the deck, keep your AI
A share ID links decks across machines. Content syncs in real time through a relay — while every agent keeps running on its owner's machine, with its owner's credentials.
NODE-LEVEL MERGING
Edits merge, not clash
Different elements merge cleanly; same-element edits resolve identically on every replica.
OFFLINE-FRIENDLY
Files stay the truth
Edits queue while you're disconnected and merge on reconnect — your deck never leaves your disk.
TRANSPARENT REPAIRS
Never silently rewritten
When a merge needs a fix, you're told exactly what changed — an orphan lifted, a connector dropped.
One source. Every surface.
GET STARTED
One source. Every surface.
Pick up the same deck from either side — people and agents edit one model.
EDIT IN THE BROWSER
Open the studio
npm run editor:start
Then open http://localhost:4318 and start dragging.
CONNECT AN AGENT
Point it at the deck
mcp: slides → npm run mcp:stdio
Or just open the Assistant panel and describe the change.