// canvases

Canvases

A canvas is a dashboard your agent builds for you out of live queries against the workspace database. You describe what you want to see in the conversation; the agent introspects the schema, writes the queries, lays out the widgets, and the numbers keep updating after it walks away.

24 widget typeslive queriesrevocable share links
01// what a canvas is

What a canvas is

Canvases come in two shapes. A workspace canvas stands on its own and a workspace can have as many as it needs. An agent canvas is attached to one specific agent and appears as a split beside that agent's conversation, so the chat sits on one side and the agent's own readout on the other. An agent has at most one.

There is no drag-and-drop builder. Canvases are authored by agents, through tools, which is what makes them cheap enough to ask for casually and easy to change by saying what is wrong with them.

02// how an agent builds one

How an agent builds one

  1. 01

    Learn the data

    agnt_canvas_introspect_schema returns the shape of the workspace database, so the agent writes queries against real columns instead of guessing them.

  2. 02

    Check the query

    agnt_canvas_preview_query runs a candidate query and shows what comes back. A widget bound to a query nobody ran is how a dashboard ends up empty.

  3. 03

    Place the widgets

    agnt_canvas_put_widget, agnt_canvas_update_widget, agnt_canvas_remove_widget and agnt_canvas_set_layout build and arrange the grid.

ToolWhat it does
agnt_canvas_introspect_schemaLearn the shape of the workspace database before writing a query.
agnt_canvas_preview_queryRun a candidate query and see what it returns, before binding it to a widget.
agnt_canvas_put_widgetAdd or replace a widget.
agnt_canvas_update_widgetChange an existing widget in place.
agnt_canvas_remove_widgetRemove a widget.
agnt_canvas_set_layoutPosition and size the widgets on the grid.
agnt_canvas_getRead the current canvas spec back.
agnt_canvas_snapshotRender a PNG of the canvas, or one widget on it, and return a durable image URL. Read-only.
agnt_canvas_chart_renderRender a one-off chart from a widget spec plus inline rows or its own query. Persists nothing.
03// widget catalog

The widget catalog

24 visualization types, one registry. The same registry generates the contract injected into the put_widget tool description, so an agent authors from the exact config keys the renderer expects rather than from a guess.

big_valueBig value
stat_groupStat group
measure_listMeasure list
trendTrend
stacked_barStacked bar
comboCombo (bar + line)
funnelFunnel
tableTable
matrixMatrix
piePie / donut
kanbanKanban board
progressProgress meter
activity_feedActivity feed
content_listContent list
record_detailRecord detail
heatmap_calendarCalendar heatmap
calendar_monthCalendar month
ganttGantt timeline
forecastForecast / burn-up
dot_stripDot strip
compareCompare pair
checklistChecklist
waterfallWaterfall
approvalsApprovals
04// viewing a canvas

Viewing a canvas

The dashboard lists a workspace's canvases as a card grid. Each card's preview is drawn from the saved spec rather than by running the widgets, so opening the list costs nothing and fires no queries. Opening a card gives you the full tab, where the widgets run for real.

An agent canvas is not in that grid. It lives beside its agent, in the split view next to the conversation.

05// sharing

Sharing a canvas

agnt_canvas_share_create mints a public, read-only link for a canvas, with an optional label so you can tell several links apart later. Anyone with the link can view the canvas. Nobody with the link can edit it or reach anything else in the workspace.

the url is shown once

The full URL appears only in the response that creates it. The raw token is never stored, so it cannot be read back later. agnt_canvas_share_list shows the links that exist, their labels and their timestamps, but only a prefix of the token. Capture the URL when you mint it, or mint a new one.

agnt_canvas_share_revoke kills a link immediately and is idempotent. Viewers land on a page saying it is no longer available.

A shared canvas is served publicly and unfurls the way a link should: the canvas title, a generic description, and a watermarked image of the board. No workspace name, no organization, no member identity appears in that metadata, so pasting a link into a group chat does not leak who you are.

06// gating

Gating

The canvas and canvas-sharing families are sold under the Database & Canvas module, $19/mo with a 7-day free trial. That is the same module that carries the workspace database the canvases query, which is why the two ship together.

Both families are served on the base connection, so an agent can see the tools. A call made without the module comes back as a requires_upgrade result naming the module, its price and a confirm URL for a person to tap. It is a tool result, never a protocol error, so the agent can relay the offer instead of burying a failure.

The database the canvases read from is documented on workspace database.