Skip to content

The Workbench

The web app’s shell is a fixed-region workbench in the VS Code mold: predictable named regions, everything opens as a tab, one command palette, one drag model. The chrome is monochrome by design — hue is reserved for your data (status dots, charts), so the interface recedes and the work reads first.

RegionWhat lives there
Rail (left)Search, Explorer, Tasks, Data, Chats, plugin items; identity and settings below
Left PanelOne view at a time: Explorer, Tasks, Data, Chats, or a plugin view
Editor AreaTabbed documents — pages, databases, canvases, dashboards, channels, saved views
Right PanelContextual sections published by the active tab (properties, comments, backlinks…)
Bottom PanelTray: Shelf, quick capture, Notifications, sync activity, and a query console
Status BarLeft = workspace scope (sync, presence), right = view scope (save state, theme)

Layout, open tabs, pins, recents, and zen-mode snapshots persist locally and survive reloads bit-for-bit.

Everything opens as a tab, and the router stays authoritative: navigating opens-or-activates the matching tab, so deep links, back/forward, and old bookmarks keep working.

  • Preview tabs — a single click from the Explorer or palette opens an italic preview tab that is replaced by the next preview. Editing the content or double-clicking promotes it to a real tab.
  • Pinning — pinned tabs stay put and survive “close others”.
  • Splits — one optional second editor group: drag a tab to the editor edge or press ⌘⇧\.
  • Performance — background tabs are unmounted entirely; they hold no live document subscriptions.

⌘K (or ⌘P) opens quick-open: recents first, then full-text page matches and every node type. Type > to switch to command mode — every command in the registry is listed with its keyboard chord. Escape restores focus to where you were.

ChordAction
⌘K / ⌘PPalette / quick-open (> = command mode)
⌘B, ⌘\, ⌘JToggle left / right / bottom panel
⌘.Zen mode (Esc Esc exits; layout restored bit-for-bit)
⌘T / ⌘WNew page / close tab
⌃Tab / ⌃⇧TabCycle tabs
⌘1 / ⌘2Focus editor group
⌘⇧\Split editor
F6 / ⇧F6Cycle focus through shell regions

Every draggable entity — explorer rows, tabs, task rows, database row chips, canvas selections — carries the same node payload. Drops create references, never copies:

  • onto the editor → a wikilink chip at the drop point
  • onto a relation cell → a link
  • onto a canvas → a source-backed card
  • onto the tab bar → a tab
  • onto an editor edge → a split
  • onto the Shelf (bottom tray) → a held reference for later

The token system is a single APCA-contrast-tuned monochrome ramp per mode (surface-0/1/2, ink-1/2/3, hairline, accent-ink). Chrome sits on dimmer surfaces than the work; the editor area is the only brightest-surface region. A true-black variant collapses dark surfaces to #000 for OLED displays — toggle it from the status bar theme control.

Plugins contribute items into fixed containers; they cannot invent new chrome:

  • Rail items / left-panel viewsSidebarContribution (a panel component becomes a left-panel view)
  • Status bar itemsStatusBarContribution (workspace scope or view scope)
  • Palette commandsCommandContribution, chords included
  • Context sections — views publish sections to the Right Panel
  • Dashboard widgetsWidgetContribution (see the Dashboards guide)

See the Plugins guide for the contribution API.

  • Tasks — the task surfaces hosted by the shell
  • Dashboards — widget boards as tabs
  • Chat & Calls — channels as tabs, calls in a dock