Widgets
The basic unit of canvas content — the built-in widgets VizChat ships with, and custom widgets built for your own library.
What a widget is
A widget is the smallest content unit on a canvas. Think of it as equivalent to one slide, one spreadsheet cell, or one Notion block — but more general. A VizChat widget can be a chart, a paragraph of text, an entire embedded webpage, or an interactive component running JS.
Each widget owns its data and its configuration, and defines its own set of operations. Those fields and operations belong to the widget itself and evolve with it — the agent looks them up when it needs them rather than assuming a fixed shape.
Two kinds of widget
Built-in widgets
The widgets VizChat ships with, covering the common cases: charts and data (including maths — coordinate planes, number lines, solids in space, distributions, Venn diagrams, probability trees, tables), rich text and code, PDFs, embedded pages and links, images and infographics, and slide covers. See the widget types overview for the full set and what each one does.
Custom widgets
When the built-ins don't cover what you need, the agent can build a widget for you: a timer, a kanban board, a calculator, or any bespoke interactive component. A custom widget is generated at runtime, stored in your library, and reusable across documents. Typical cases:
- Visualizations outside the standard set (Sankey, calendar heatmap)
- Components that need state and event interaction (filters, date pickers)
- Embedding third-party libraries
Custom widgets mount inline in the canvas by default, and can opt into a sandboxed iframe (nested mount) when they need a fully isolated realm — a controlled API talks to the host canvas either way. They are private to you by default, and can be published to the Marketplace so other people can use and favorite them.
Widget independence
Each widget is an independent mini-app. It has:
- Its own data and configuration, stored in the document
- Its own lifecycle (mount, render, destroy)
- Independent edit / copy / delete operations
How the AI works with widgets
When you ask for something, the agent works through roughly this path:
- Find a widget —
search_widgetssearches built-in and user-published widgets from the same pool. Widgets you have favorited, or mentioned with@, are considered first. - Learn its contract —
get_widget_operationsreturns the fields and operations that widget actually accepts. - Write it into the document — the widget and its initial data are written into the document, and later changes are made as precise path edits with
edit_yaml_path. - Validate —
validate_boardchecks the document structure, that every referenced widget exists, and that referenced workspace documents exist.
If nothing in the library fits, the agent can fall back to building a new custom widget for you instead.
Next step
Canvas
VizChat's core workspace — the surface a document is composed on, holding widgets that the AI reads and writes directly.
AI agent workflow
VizChat runs a single agent with an on-demand skill for widget building — it gathers context, finds or builds a widget, writes the document, and validates it.