Dashboards
A dashboard is a named grid of tiles: metric cards, charts, tables, Markdown notes, custom elements and more. Tiles can show content an agent wrote to them, or be bound to a data source so they show its latest result and update by themselves.
Open dashboards from Dashboard at the top of the left navigation. Each dashboard has its own address (/dashboard/ followed by its ID), so you can bookmark or share a link to it.
Most tiles are put on a dashboard by an agent: you describe what you want to keep an eye on and an agent with the dashboard tools builds it while you watch. You can also add tiles through the API. The dashboard page itself is where you view, arrange, organise and share dashboards; it has no button for adding tiles.
Finding your way around
The header
The bar above a dashboard has:
| Part | What it does |
|---|---|
| Dashboard picker (the dashboard's name, with its group above it) | Opens a searchable list (Find a dashboard or group…) with your Pinned dashboards first, then every dashboard by group. Its footer has Browse all and New dashboard |
| Pinned strip | Your pinned dashboards as one-click chips. Drag a chip to reorder |
| Refresh | Shown when tiles are bound to data sources: Pull fresh data from every source feeding this dashboard |
| Browse all dashboards | Opens the library |
| New | Creates a dashboard |
| Dashboard actions (⋮) | The actions menu for the open dashboard |
The library
Browse all opens every dashboard you can see as cards, grouped, with:
- a search box (Search by name, group or description…);
- a filter: All, Personal, Shared or Hidden;
- a sort: Name or Recently updated;
- collapsible group sections, each with a menu offering Rename group… and Ungroup these dashboards (which keeps the dashboards and removes the group);
- on each card, its description, when it was updated, badges (Viewing, Default, Hidden, Shared), a pin button and an actions menu.
Which dashboard opens first
Going to Dashboard opens your Default dashboard if there is one, otherwise the one you last viewed, otherwise the first in the list. A dashboard is made the default through the API (is_default).
The dashboard actions menu
The same menu appears in the header and on library cards:
| Action | Effect |
|---|---|
| Edit details | Change the name, group, description and Align rows |
| Pin to quick access / Unpin | Adds it to, or removes it from, your pinned strip. Only for you |
| Share with team / Stop sharing | Makes it visible to everyone in your organisation, or personal again |
| Hide / Show again | Removes it from your picker and lists without deleting it. Only for you; find it again under the Hidden filter |
| Delete | Deletes the dashboard and its tiles for everyone, after you confirm |
Pins, hidden dashboards, collapsed groups and the last-viewed dashboard are remembered in your browser, so they do not follow you to another browser or device.
Dashboard details
| Field | Notes |
|---|---|
| Name | Required, up to 120 characters |
| Group | Pick an existing group or type a new one, up to 80 characters. Leave empty to keep it ungrouped. Group names are matched without regard to case |
| Description | Up to 500 characters. Shown on library cards and searched |
| Align rows | Gives tiles that share a row the height of the tallest one. Off by default, so tiles close up under shorter neighbours |
The grid
A dashboard is a 12-column grid. On a dashboard you can edit:
- Move a tile by dragging its title.
- Resize a tile from its corner. Resizing pins the tile to that height.
- Fit height to content: in a tile's Configure element dialog, turn this on to let the tile's height follow what it renders again, or off to keep the height you set. Tiles size to their content by default.
Layout changes are saved automatically.
Tiles
Each tile has a title bar showing:
- the tile's title (also the drag handle);
- a data health marker when a bound tile is not showing live data (see below);
- via and an agent's name, when an agent last updated the tile;
- Refresh data, on tiles bound to a data source;
- Configure element (the gear), which opens Fit height to content and a Data Source section for previewing a source's data in the tile.
Element types
| Element type | Shows | Main data fields |
|---|---|---|
metric_card | One number with a label and trend | value, label, trend, trend_direction |
chart | A chart (bar by default) | chart_type, series, options |
table | Rows and columns | columns, rows |
markdown | Formatted text | content |
agent_output | Text an agent produced | output, agent_name |
mission_status | A mission's progress | mission_name, status, progress, message |
kanban | Cards in columns | columns, items |
image | An image with caption | src, alt, caption |
countdown | Time remaining to a date | target_iso, label |
link_list | A list of links | links |
custom | Your own HTML or React, rendered in a sandbox | template, props, payload |
Where the platform holds a JSON Schema for an element type, tile data is validated against it when a tile is added or updated. Custom tiles are usually created from a reusable library template; see Elements and Creating Custom Dashboard Elements.
Custom tiles run in a sandboxed frame with no network access. A custom tile can offer buttons that start a workflow, open a chat with an agent, or open a run; these only act on your click, and your own permissions still apply.
Data health
A tile bound to a data source that is not showing live data says why. Hover over the marker for the reason and the fix.
| Marker | Meaning |
|---|---|
| Not live | The data source's last fetch failed; the tile shows its sample content |
| Partly live | The data source returned partial data and reported errors |
| Never loaded | The data source has never returned data |
| Paused | The data source is disabled |
| Source deleted | The bound data source no longer exists |
| No access | You cannot read the bound data source (for example, it is someone else's personal source) |
Healthy tiles show no marker.
Live updates
Dashboards update without reloading:
- When a bound data source refreshes (on a schedule, by push, or because someone refreshed it), every tile bound to it receives the new data.
- When an agent or another person adds, updates, removes or rearranges tiles, open copies of the dashboard update.
- When an agent creates, renames or deletes a dashboard, your list of dashboards updates.
Opening a dashboard also fetches any bound data source whose cache is empty or out of date, within a short time limit, so tiles open with current data rather than sample content.
Sharing and access
| Scope | Who sees it |
|---|---|
| Personal (default) | Only you |
| Shared | Everyone in your organisation, across projects |
Dashboards belong to your organisation, not to a single project, while the data sources tiles are bound to belong to a project. A shared dashboard bound to a personal data source shows No access to everyone but that source's owner, so bind shared dashboards to project-scoped sources.
On a shared dashboard you did not create, the page shows Shared dashboard — curated by the platform; layout and elements are read-only. and you cannot drag or resize its tiles. The API, and agents acting for you, can still change shared dashboards.
When your trial has ended the platform is read-only: New and New dashboard are disabled.
Agents and dashboards
Agents build dashboards with a set of platform functions. An agent can use them once they are assigned to it:
| Function | What it does |
|---|---|
create_dashboard | Creates a dashboard for the current user, optionally in a group |
rename_dashboard | Renames a dashboard |
organise_dashboard | Moves a dashboard into a group and updates its description |
list_dashboard_elements | Lists dashboards, or one dashboard's tiles and positions |
list_element_types | Lists the element types, their schemas and the library templates |
add_dashboard_element | Adds a tile, placed in the first free slot. Width is set with size: full, two_thirds, half (default), third or quarter. Can reference a library template by name |
update_dashboard_element | Changes a tile's data or title |
move_dashboard_element | Moves or resizes one tile |
replace_dashboard_layout | Rearranges every tile at once |
remove_dashboard_element | Removes a tile |
These functions write data into tiles; they do not bind tiles to data sources. Binding is done through the API or the platform MCP tools. Data an agent writes to a bound tile is a one-off: the next refresh of the data source replaces it.
If you have no dashboards yet, the Dashboard screen offers Create Dashboard. If your platform has a builder agent configured for dashboards, it offers a chat with that agent first, with Create Dashboard manually as the alternative.
Dashboard templates
Platform administrators can publish a dashboard as a template and roll it out to organisations. Copies appear in your list as shared dashboards. New accounts start with a welcome dashboard.
Through the API
Dashboards are available under /dashboards in the platform API and through the platform MCP tools (list_dashboards, get_dashboard, create_dashboard, update_dashboard, delete_dashboard, add_dashboard_element, update_dashboard_element, delete_dashboard_element, set_dashboard_layout). Tile positions must fit within the 12 columns; a request that overflows is refused.