The Dependency Graph โ
Every notebook is a directed acyclic graph of cells: the engine reads which variables each cell reads and writes, and draws an edge wherever one cell consumes another's value. That graph is what makes the notebook reactive โ change a value and only the downstream cells restale.
This page is about seeing and shaping that graph: the DAG pane, manual edges for effects no variable carries, and running part of a notebook on another kernel (regions).
The DAG pane โ
Open the pane with the ๐ธ DAG button in the top bar, or โโงG. It's a live map of the notebook's dataflow โ one node per cell, an edge wherever a cell reads a value another cell writes โ laid out automatically and updated as you edit and run.

Node color mirrors each cell's state โ fresh / stale / running / errored โ so a wave of gold shows exactly what a change restaled.
โ display โ show setup cells (
using/importand their edges) and show isolated cells (cells with no dataflow edges) are off by default, keeping the graph to the cells that actually pass data.โ direction โ layout orientation; auto follows the pane shape (a tall pane lays out top-down).
โจ dock and the grip re-side and resize the pane.
๐ฅ heat map โ color cells by accumulated compute time (hotter = more expensive), to find the bottleneck in a pipeline.
๐ง region map โ color cells by where they run (see Regions).
Manual edges โ
The engine infers edges from the variables a cell reads and writes. Some dependencies aren't carried by any variable, though โ a cell that writes a file, seeds a database table, or mutates global state that a later cell reads back. Assert those yourself so the engine keeps the two in order:
needs=id1,id2header tag โ set it with the ๐ท tag editor or directly in the cell header. It names the earlier code cells this one depends on.๐ link mode in the DAG pane โ click it, then click two cells to draw a manual edge (shown dashed); click a dashed edge to remove it.
Manual edges are first-class: they drive staleness, run order, and cache keys exactly like inferred ones. A needs= that names no earlier code cell (deleted, moved below, or a markdown cell) is inert and flagged with a ๐โ badge on the cell.
Regions โ run cells on another kernel โ
When a notebook is split into regions, some cells run on a second kernel (usually on another host) while the rest stay local. The DAG pane is where you see and steer that split; the region model itself โ defining regions, declaring destinations, how boundary values cross โ is in Regions.
Steering regions from the DAG โ
Turn on the ๐ง region map and the graph reorganizes into side-by-side zones โ ๐ป local and one per region โ with each node tinted by where it runs and the cross-zone edges drawn as the boundary hand-offs (labeled by transport: direct / ssh-bridge / relay). Drag a node between zones to reassign it. A node wears a ๐ง badge when its last run executed on a region kernel, and the legend along the bottom names the hosts and hosts the region toolbar.

Click any node for its detail card. For a cell whose last run was remote it shows the provenance: a last ran ๐ง host chip, a moved โ N MB chip for the inputs that had to cross the boundary, a per-transfer breakdown (size ยท route ยท throughput), and a Run on picker to reassign the cell to a different kernel in place.

Each region zone header carries a live status dot โ hover it for the region's worker card: connection status, host, transport, and CPU / RSS / running-cell telemetry, with ๐ชต Log and โ Reap actions.

The region toolbar โ
The region-map legend hosts three tools for the cross-region plumbing.
โ peer routing plan โ how each region pair is wired: a resolved direct or ssh-bridge route worker-to-worker, or a relay through the hub, with per-host grants and host-key pins. โป recalculate probes every pair live so throughput and route are measured now rather than on the next real transfer.


๐ transfers โ a dashboard of every boundary move: total moved, throughput over time, a region-to-region grid, and the rate distribution โ to see where the data actually flows and how fast.

โ connect โ the first time two regions on different hosts need a direct worker-to-worker link, Slate asks before exchanging keys (decline and transfers still work โ they just relay through the hub). The dialog spells out exactly what it installs โ an on-host ed25519 key, a locked-down single-port grant, a host-key pin โ then arms the bridge with live progress.


While a value crosses the boundary, the consuming cell shows a live progress bar (โ <name>: N/M MB โ host) โ driven on its own data channel, so a big move never looks like a hang.

See also โ
Reactive Cells โ the reactive model the graph drives, and the ๐ upstream focus.
Regions โ running part of a notebook on a second kernel, steered from the DAG.
Remotes & Pools โ hosts, transports, and warm pools.
Cell Tags & Caching โ the
needs=andregion=tags in the header.