Browse documentationCanvas
CanvasExperimentalStale snapshot

Canvas

o8's spatial glass-space — work and media as draggable cards on one plane, with a navigator globe. Experimental.

The product files tracked by this page changed after o8 v0.1.431. Use this as a dated reference while the current documentation is refreshed.

The Canvas is o8's spatial workspace — an experimental "glass-space" where work and media live as draggable, resizable glass cards on one open plane, instead of the fixed panels of the Control Room. Nothing has to live in one spot: the orchestrator, terminals, files, diffs, browsers, and images all float freely.

It's additive and dismissible — it never replaces the Control Room. You open it, arrange things spatially, and exit back to the dashboard whenever you want.

The Canvas is experimental and off by default — turn it on in Settings → Operator Defaults (see Turning it on at the end). The card types below ship today; voice and multi-agent control are direction, and marked as such.

The glass

The Canvas re-skins the app as dark, tinted "Siri-style" clear glass — with the clearest material, your real desktop reads through the window. It's tunable: sliders for frost/blur, tint, ink brightness, and vibrance, with one-click presets (Clear / Siri / Frost). Behind the glass sits a deliberately minimal ambient backdrop you can pick — dots, paper, aurora, and a few others — kept subtle on purpose (big motion is hard on the eyes over a workday).

What's on it

Everything is a card you can drag, resize, and arrange:

CardWhat it does
OrchestratorA real conversation with the orchestrator — the same one that runs the dashboard — replies streaming into a side dock.
BrainAsk a question about the scoped repo; get a streamed, cited answer with source pills.
TerminalA real shell.
FileOpen any file; markdown renders with a Read/Edit toggle and a save.
Spec (o8.md)The repo's workspace spec at full parity with the dashboard — notes, talk-back, inline images, autosave.
BrowserA URL bar and page with tabs and an element picker; agents can open pages here.
Diff + ReviewThe governance surface as objects: a Review drawer lists live lanes, and picking one spawns a diff card with Approve & merge / Request changes.
Image & videoDrag-drop media anywhere; drag a few together and they fan into a stack.

You arrange cards by dragging, zoom in steps, and switch between a free layout and a grid. New cards spawn into open space.

The navigator globe

In the bottom-left corner sits the navigator globe — a small glass loupe showing a scaled minimap of everything on the canvas (image cards render real thumbnails). Drag the ball to pan the view; use its −/fit/+ controls to zoom. It auto-hides when you're idle and slides back when your cursor approaches the corner.

Where it's headed: voice and the room

The Canvas is built to be driven by voice across a fleet — and this part is direction, not shipped yet. The intent: spawn several agents at once as cards, address one by name ("agent two, run the linter"), and ask the room — "what's everyone working on?", "which of these will conflict?", "is this diff safe to merge?" — answered out loud while the relevant cards light up.

The governance posture is the point: observe everything, spawn freely, and gate only the irreversible few — merges, pushes to main, deletes, migrations, and spend always raise a visual approval card, while read-only questions run instantly. Voice will come in two tracks: a free local default and an opt-in realtime mode. Treat this section as the roadmap, not today's feature set.

Turning it on

The Canvas is experimental and off by default. Flip the Experimental Canvas toggle in Settings → Operator Defaults (where the glass-material sliders also live) and a Canvas button appears in the status bar. Click it to enter; an Exit control in the top dock returns you to the dashboard. It's desktop-only — there's no Canvas on mobile.

o8 v0.1.431 · updated 2026-06-25 · experimental · stale snapshot
tracks: docs/canvas-mode-plan.md · src/app/preview/canvas-glass · src/lib/operator/use-experimental-canvas.ts