// dashboards

Dashboards

Every workspace has one dashboard, and your agent builds it. Each view is a page the agent writes in HTML from a small set of live elements (numbers, charts, tables, lists), bound to named queries over the workspace database and your superagnt account's own data. People in the workspace open the views in the superagnt app, and the numbers are current every time.

8 live elements6 starter templatesdrafts and historypublic view links
01// what a dashboard is

What a dashboard is

A dashboard is a set of views. A view is one HTML page built from sa-* elements, each bound to a named query, so the page always shows what the data says now. A workspace has exactly one dashboard, and it shows its views in the order the agent sets.

There is no drag-and-drop builder. Agents write the dashboard: Claude, Codex or any MCP client connected to the workspace, a deployed agent with the dashboard tools turned on (dashboards_enabled in its config), or the Agnt Wizard in the superagnt app. You say what you want to see in the conversation, and the agent changes it when you say what is wrong.

In the superagnt app the views are under Dashboard in the sidebar. A view can name the deployed agent it is about, and that view then opens beside the agent's chat.

02// the files

The files

Under the hood a dashboard is a small folder of text files. The agent reads and writes them through the dashboard tools; nobody sees a file or a line of SQL in the app.

FileWhat it holds
dashboard.jsonThe dashboard's title and its views in order, each with a title, a description and, optionally, the deployed agent it is about.
views/<slug>.htmlOne view: a page of plain HTML and sa-* elements.
components/<tag>.htmlA piece of HTML several views reuse, placed in a view as its own tag.
queries/<name>.sqlOne named query: a read-only SELECT on the workspace database, or a platform dataset by name, with typed params that have defaults.
queries/leads_by_stage.sqlsql
-- Leads that entered each stage in the window.
-- @param days int = 30
select stage, count(*) as leads
from leads
where entered_at >= now() - make_interval(days => :days)
group by stage
order by leads desc
views/pipeline.htmlhtml
<sa-chart label="Leads by stage" query="leads_by_stage" kind="hbar"
  x-field="stage" y-fields="leads" sort="desc" format="number"></sa-chart>
<sa-table label="Every stage" query="leads_by_stage"></sa-table>
03// how an agent builds a view

How an agent builds a view

  1. 01

    Learn the rules and the data

    agnt_dashboards_guide returns the authoring guide, and agnt_dashboards_describe_data lists the tables and platform datasets a query can read, so the agent writes against real columns instead of guessing them.

  2. 02

    Write a draft

    agnt_dashboards_apply_template starts a view from a template, and agnt_dashboards_write_file writes files from scratch. Every change goes into the agent's own draft, and every write comes back with its problems in plain words: the file, the line and what to change. A query runs once as it is saved and returns its columns and a few sample rows.

  3. 03

    Look at it

    agnt_dashboards_preview renders the view as a PNG with a report on each query's rows or error, so the agent fixes what it sees before anyone else does.

  4. 04

    Publish

    agnt_dashboards_publish takes a one-line summary and makes the draft the next version for everyone in the workspace. Any error refuses the publish and comes back as a list to fix.

ToolWhat it does
agnt_dashboards_guideThe authoring guide: the files, the query grammar, every element and how publishing works.
agnt_dashboards_describe_dataThe tables and platform datasets a query can read, with their columns.
agnt_dashboards_list_filesEvery file, with the agent's own draft laid over the published version.
agnt_dashboards_read_fileOne file: the agent's draft copy if it changed it, else the published one.
agnt_dashboards_write_fileSave a whole file to the draft. Returns its problems, and a query's columns and sample rows.
agnt_dashboards_edit_fileReplace exact text in a file without resending all of it.
agnt_dashboards_apply_templateStart a new view from a starter template.
agnt_dashboards_previewRender one view as a PNG with a report on each query. Read-only.
agnt_dashboards_publishPublish the draft as the next version, for everyone in the workspace.
agnt_dashboards_historyThe published versions, newest first, with who changed what and why.
agnt_dashboards_restorePut one view back to an older version, as a new version.
agnt_dashboards_delete_fileDelete a file in the draft. It leaves the dashboard on publish.
agnt_dashboards_discard_draftThrow the draft away. The published version is untouched.
agnt_dashboards_unshare_viewTurn off a view's public link at once.

A client that lists grouped tools sees three: agnt_dashboards_read, agnt_dashboards_write and agnt_dashboards_remove, each taking the operation as its action.

04// elements

The elements

A view shows data only through these 8 elements. The rest of the page is plain HTML and CSS for layout and words.

sa-valueOne number or short value with a label, an optional change and a caption.
sa-meterProgress against a limit: plan limits, grant left, job progress.
sa-statusA status light with a label and an optional detail line.
sa-listRows of label, value and optional status.
sa-sparkA sparkline for one measure over time.
sa-chartA chart with up to nine series: line, area, bar, horizontal bar or funnel.
sa-tableA table of rows, with an optional CSV download and approve or decline on every row.
sa-actionA button from a fixed set: approve or decline a pending request.

views run nothing of their own

Views render in a locked frame with no network. The save checks refuse scripts, event handlers, forms, links and anything loaded from outside, so a view can neither run code nor send data anywhere. Approving or declining a request is the one action, and the app asks the person to confirm first.
05// starter templates

Starter templates

A template is a working view the agent adapts. The workspace ones come with sample rows so the view renders at once; publish refuses a query that still returns them, so the agent points each one at your own tables first. The platform ones read live account data and publish as they are.

TemplateWhat it startsData
number-rowNumber row. A row of four headline numbers from one query.sample rows
trendTrend. Two measures over time as an area chart, with their totals on top.sample rows
breakdownBreakdown. One measure by category as ranked bars, or a funnel for ordered stages.sample rows
table-csvTable with CSV. A sortable table with mixed formats and a CSV download.sample rows
approvalsApprovals. The requests your agents are waiting on, with approve and decline on every row.live platform data
credits-usageCredits and usage. Credit balances, this month's spend, spend per day and per agent.live platform data
06// platform data

Platform data

Besides the workspace database, a query can read your superagnt account itself. A query file names a dataset with -- @source platform:<name> and holds no SQL. Reading platform data never creates a database.

DatasetWhat it holds
platform:creditsCredits and spend. The data and AI credit balances, a running trial, and what this workspace spent in the window.
platform:usageUsage and spend. AI and data spend in the window, one row per day, hour, agent, model or data provider.
platform:data_jobsData pipelines. Each data pipeline with its run and row counts, success rate, last run and queue health.
platform:agent_runsAgent runs. Recent runs of the workspace's deployed agents, including fires that never started.
platform:approvals_pendingPending approvals. The tool calls and questions agents are waiting on a person to approve or answer.

Agent runs and pending approvals cover every agent in the workspace, so a deployed agent can preview them only with observability_enabled on. People in the workspace see them on a published view either way. Platform data never appears on a public link.

07// drafts and history

Drafts, versions and history

Each author works in a draft of its own. People keep seeing the published version until the author publishes, and two agents working on different views never block each other. While a draft is open, the dashboard shows a banner with who is building, what they asked for and the views it touches, and anyone in the workspace can discard the draft from it. There is no publish button: the agent publishes once its preview is clean.

Every publish is a version, kept with who made it and the summary they wrote. A view's change list in the app shows its versions, and any older one can be restored; agnt_dashboards_history and agnt_dashboards_restore do the same for an agent. A restore is itself a new version, so nothing is lost.

If someone published a file after the agent changed it, publish stops and names the file, so a teammate's newer copy is never overwritten by mistake. The agent reads their copy, applies its change on top and publishes again.

08// public view links

Sharing a view

A person in the workspace can share one published view as a public link, from the view's page in the superagnt app. Anyone with the link sees that view with live data, read only, labelled "Agent-generated", with a way to report it. Agents can't make a link; agnt_dashboards_unshare_view turns one off at once, and a person can share the view again later.

what keeps a view private

A view can't be shared, and a shared view's link turns off on the publish that brings one in, when it reads platform data, holds an image, has a column whose name looks like a secret, has text that spells out a web address or mentions passwords or card details, or has errors. Every publish checks each shared view again.

A public link sends only the columns the view's elements read, and only as many rows as they show. Every query runs with its defaults, and rows come in the query's own order.

09// plans

On every plan

The dashboard is on every plan and the same on each: up to 50 views and 100 named queries, whatever the plan. What the plans cap is the workspace database the queries read, in tables, rows and storage. Opening a view never creates a database and never starts the no-card trial's clock. An agent test-running a query on the database counts as using it, like any other query.

If the organization's trial has ended or its plan has lapsed, a dashboard tool call comes back as a requires_upgrade result with 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 views read from is documented on workspace database. Canvases, and the agnt_canvas_* tools that built them, were retired for the dashboard: those tool names now answer with a pointer to the dashboard tools.