Skip to content

Canvas & nodes

Everything in nodeterm lives on a canvas: terminals, agents, notes, editors. This page covers how the canvas moves and how you handle the nodes on it.

The canvas is an infinite pan/zoom surface — a black background with a dot grid, and no edges to run into. You lay nodes out spatially and fly around them:

  • Pan with a two-finger trackpad gesture or a middle-mouse drag.
  • Zoom by pinching — zoom out to see everything running, in to work.
  • Box-select by dragging with the left mouse button; a node only has to be touched by the box to be included.
  • Right-click for context menus — on empty canvas to add nodes, on a node or selection to act on it.

Right mouse is reserved for the context menu, so it never pans.

Every node has a header you drag it by, and a small set of controls on that header:

  • Collapse the node to just its header.
  • Color it, to group related work by eye.
  • Rename it by clicking the title.
  • ✦ AI-name it — let an agent pick a name from what the node is doing.
  • Tags — chip labels you can search by.
  • × to close it.

Terminal nodes don’t grab your keystrokes the instant your pointer arrives. A transparent hover guard sits over the terminal until you dwell on it — 600 ms by default, configurable in Settings. Before the dwell, the node behaves like part of the canvas: drag to move it, scroll to pan. After the dwell the guard lifts and the terminal takes input.

This is what keeps a quick gesture — flicking past a node, scrolling the canvas — from landing in a shell by accident. The header stays draggable the whole time.

Right-click gives you two menus depending on where you click:

  • Empty canvas — add a node at the cursor (terminal, Claude, sticky, open file), select all, or fit the view to everything.
  • A node or selectiongroup, color, duplicate, align to grid, collapse, markdown view (terminals), and delete.

The same add actions are mirrored on the bottom dock’s + and in the command palette (⌘K).

Node-layout changes are undoable. ⌘Z undoes, ⌘⇧Z redoes — moves, edits, grouping, and the like. History is per project and resets when you switch projects, and it’s skipped while you’re typing into an input or a terminal, so an undo never reaches into your shell.