Canvas on a NodeNEW
Render interactive Canvas content directly on a paired desktop node screen.
Canvas usually renders in the Dashboard panel next to the chat. But sometimes you want the artifact on a real screen — a chart on the meeting-room display, a dashboard on a wall-mounted PC, an SVG diagram on the machine sitting next to you. Sophon can open the live Canvas for the current session directly on a paired Sophon Node desktop.
This is part of the desktop node feature set. The agent pushes Canvas content as usual, then asks a Node to display it on its own screen.
How it works
The agent-facing tool is node.present_canvas. It takes one optional parameter:
| Param | Type | Notes |
|---|---|---|
node_id | string | Target Node. Optional — defaults to the active/default Node. |
Under the hood the tool dispatches a canvas.present command to the Node, passing the current session id. The Node builds the Dashboard Canvas URL for that session — {gatewayUrl}/canvas?session={id} — and opens it in the machine's default browser. Because the browser reuses the user's existing Dashboard login, the Canvas renders and stays interactive with no token in the URL.
From that point on, everything the agent pushes via canvas.render — new frames, updated frames, interactive components — streams live onto the Node's screen over SignalR, exactly as it would in the Dashboard panel.
node.present_canvas({ node_id: "meeting-room-pc" })Call it after you have pushed Canvas content, so there is something to show when the page opens.
What it's good for
- Charts and dashboards on a remote screen — render an agent-built dashboard on a display across the room or across the building.
- Visuals during a demo or meeting — open the Canvas on the presenting machine so the audience sees the artifact, not your chat window.
- Diagrams and prototypes on a second machine — push a Mermaid diagram or an HTML prototype to the screen sitting next to you while you keep the chat on your laptop.
Permission scope
The Node must hold the canvas.control scope. In the Dashboard this is the Canvas group under Settings → Devices → (node) → Permissions. Without it the Gateway rejects the command before it ever reaches the Node. See Permissions & Scopes for how scopes are granted and audited.
canvas.present is consent-gated on the Node by default. The Node prompts before opening a browser window, so a remote machine can't silently pop up pages without the local user's awareness. The tool itself is rated Medium risk.
Relationship to Remote Control
node.present_canvas is a sibling of the broader Remote Control capability, but it serves a different purpose:
- Remote Control drives the desktop — screen capture, mouse, keyboard, app and window management. It is about operating the machine.
- Canvas on a Node is one-way output — it puts a rendered, interactive Canvas on the screen. The agent isn't clicking around the OS; it's handing a live artifact to a display.
The two compose well. You might use Remote Control to open the right app or arrange windows, then node.present_canvas to drop the agent's chart onto that same screen.
Notes
- The Node opens the Canvas in whatever browser is configured as the system default.
- The session must be active — the tool reports an error if there is no session to present.
- The command supports an explicit URL override on the Node side, but it only accepts
http/httpstargets; anything else is refused.
Where to go next
- Canvas — what Canvas is and how the agent populates it
- Remote Control — operating the desktop from the agent
- Permissions & Scopes — granting the
canvas.controlscope - Available Commands — the full Node command reference