Dashboards
Build visual overviews with markdown, charts, and diagrams on a responsive grid.
Overview
A dashboard is a grid of widgets. Each widget is a markdown document rendered inside a card on a 12-column responsive grid. Dashboards are global — they are not scoped to a single project, so one dashboard can aggregate information across your entire workspace.
Dashboards serve two primary purposes:
- Human-curated views — manually arrange widgets to track project metrics, sprint status, or architecture diagrams.
- Agent-generated reports — agents create and update dashboards programmatically via the CLI, producing business plans, analysis summaries, or live status boards.
Access dashboards from the Dashboard tab in the top navigation bar, between Assistant and Kanban.
Widget Types
Every widget stores its content as markdown. The renderer detects embedded content blocks and renders them as rich elements inside the card.
| Type | Content Format | Use Case |
|---|---|---|
| Markdown | Standard markdown with headings, lists, tables, bold, links | Narrative text, status updates, meeting notes |
| Chart | ECharts JSON inside a ```echarts fence | Bar charts, line graphs, pie charts, metrics |
| Diagram | Mermaid syntax inside a ```mermaid fence | Flowcharts, sequence diagrams, architecture maps |
Markdown Widgets
The default widget type. Write any standard markdown and it renders as formatted text inside the card. Supports headings, bullet lists, numbered lists, tables, bold, italic, inline code, and links.
Chart Widgets
Embed an ECharts configuration inside a fenced code block tagged echarts. The widget renders a live, interactive chart. You can mix markdown text above or below the chart block within the same widget. See Editor & Diagrams for chart syntax details.
Diagram Widgets
Embed Mermaid diagram definitions inside a mermaid fenced code block. Supports flowcharts, sequence diagrams, class diagrams, Gantt charts, and more. The diagram renders inline within the widget card.
Creating and Editing Widgets
Creating a Dashboard
Navigate to the Dashboard tab in the top navigation.
Click the + button to create a new dashboard. Give it a title.
The dashboard opens with an empty grid, ready for widgets.
Adding a Widget
Click Add Widget on the dashboard toolbar.
A new widget card appears with default size (4 columns wide, 2 rows tall).
Click the widget to open the inline editor. Write markdown, paste an ECharts config, or add a Mermaid diagram.
Editing a Widget
Click any widget to open its inline editor. The editor supports full markdown with a live preview. Changes save automatically. You can also click the zoom icon to expand a widget into a full-screen editing view.
Widget titles appear as the card header. Set the title when creating the widget or update it in the widget settings menu.
Grid Layout and Positioning
Widgets are positioned on a 12-column responsive grid. Each widget has four positioning properties:
| Property | Range | Default | Description |
|---|---|---|---|
x | 0 – 11 | 0 | Column offset (0 = left edge) |
y | 0 + | 0 | Row offset (0 = top) |
w | 1 – 12 | 4 | Width in columns |
h | 1 + | 2 | Height in rows |
Common Layout Patterns
Full-Width Narrative
w=12Spans the entire row. Use for executive summaries, introductions, or large diagrams that need horizontal space.
Side-by-Side Pair
w=6 + w=6Two half-width cards on the same row. Ideal for pairing a data table with a chart, or a diagram with its description.
Three-Column Dashboard
w=4 + w=4 + w=4Three equal cards per row. The default layout when adding new widgets without specifying position.
Drag-and-Drop Reordering
Rearrange widgets visually by dragging them on the grid:
Hover over a widget’s title bar to reveal the drag handle.
Click and hold the drag handle, then move the widget to a new position on the grid.
A blue placeholder shows where the widget will land. Drop to confirm.
Resize widgets by dragging the handle at the bottom-right corner of the card.
Position changes update the widget’s x, y, w, and h values automatically and persist immediately.
Dashboard Scope
Dashboards are global objects — they exist at the workspace level, not inside a project. This means:
- A single dashboard can display data from multiple projects.
- Switching projects does not change which dashboards are visible.
- You can create as many dashboards as you need and switch between them from the dashboard dropdown.
To create a project-focused dashboard, name it after the project and populate it with project-specific widgets. While not enforced by scope, the convention keeps dashboards organized when you have many projects. Agents operating within a project context will typically create or update the dashboard associated with that project.
Embedding Diagrams and Live Data
Widgets support rich embedded content beyond plain text. Mix markdown prose with charts and diagrams in a single widget, or dedicate entire widgets to a single visualization.
Embedding a Chart
Place an ECharts JSON configuration inside a fenced code block. The widget renders the chart inline:
## Monthly Revenue
```echarts
{
"xAxis": { "type": "category", "data": ["Jan","Feb","Mar"] },
"yAxis": { "type": "value" },
"series": [{ "type": "bar", "data": [120, 200, 150] }]
}
```Embedding a Diagram
Place a Mermaid definition inside a fenced code block. The diagram renders directly in the card:
## System Architecture
```mermaid
graph LR
A[User] --> B[Frontend]
B --> C[API Server]
C --> D[Database]
```Agent-Generated Content
Agents can create and update dashboard widgets programmatically using the AIF Actions CLI. This enables workflows where an agent analyzes data, generates a report, and writes the results directly to a dashboard widget — no manual editing required.
Agents running inside an execution can update widgets as part of their task. For example, a planning agent might produce an 18-widget business plan dashboard with executive summary, market analysis, financial projections, and architecture diagrams — all generated in a single run.
Tips and Best Practices
- Use
w=12for introductory or summary widgets so they always appear at full width. - Pair a data table widget (
w=6) with a chart widget (w=6) on the same row for side-by-side comparison. - Increase
hfor widgets with tall diagrams or lengthy text to avoid scrolling within the card. - Name dashboards after projects or themes (e.g., “Q1 Sprint Dashboard”) to keep them easy to find.
- Let agents generate the initial dashboard layout, then refine positions manually with drag-and-drop.