Create a view
create_viewCreates a new view: a live page at a stable URL in the user's dashboard app. source is ONE file of React (JSX/TSX) that default-exports a component and reads its data with useDataset("dataset_name") from "quillm". Do not embed data in the source; create the dataset first (create_dataset), then the view. Pass the brief: the user's request in their words, and what you asked them and what they answered. When the brief is thin, the response suggests what to ask. Decide the questions next: what the user asked for is the scope, and a small request gets a small page. The view is compiled, test-rendered in a real browser and reviewed immediately: the response tells you whether it rendered, lists errors, and lists what a reader would still be missing, so read it and fix problems with update_view. The checks use two outside services unless the workspace turned them off: TypeSafe reads the brief, and OpenAI reads a screenshot and the page's text. Call get_guide first for the template and available libraries. Check get_workspace first: if a suitable view already exists, use update_view instead.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"slug": "<slug>",
"title": "<title>",
"description": "<description>",
"collection": "<collection>",
"kind": "<kind>",
"brief": "<brief>",
"questions": "<questions>",
"source": "<source>"
},
"name": "create_view"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | Optional. One emoji for the page, e.g. "💰". The app shows a glyph for the page's kind when there is none. | |
| kind | Yes | What the page is for. "dashboard": numbers someone watches over time. "tracker": items people work through (steps, tasks, leads) with owners and status. "doc": a brief, report or analysis mostly in prose. "calculator": inputs the reader changes and an answer. Decides what the page review holds it to. | |
| slug | Yes | URL id, lowercase-with-dashes, e.g. "finance-overview". Permanent. | |
| brief | Yes | The brief. Quillm judges whether it is enough to build a page someone will read for months; when it is not, create_view still builds the page and tells you what to ask the user. | |
| cover | No | Optional and no longer shown; kept for older clients. | |
| title | Yes | Shown in the app's sidebar. | |
| source | Yes | The full single-file React source (JSX/TSX) with a default-exported component. See get_guide. | |
| questions | Yes | Write these BEFORE the source. The 1-5 questions the user has in mind when they open this page, in their words: "How many months of cash do we have?", "Who do I need to follow up with today?". What the user asked for is the scope: every block in the view answers one of these, once. | |
| collection | Yes | Sidebar group, e.g. "Finance", "Growth", "Projects". Reuse an existing collection when one fits. People are given access per collection, so the collection decides who can open the view; do not move a view to another collection unless asked. | |
| change_note | No | Why this view was created (recorded in the changelog). | |
| description | Yes | One sentence: what this view answers. Other agents use it to decide whether to reuse this view. | |
| dependencies | No | Only for npm packages outside the base runtime, with exact versions: {"d3-sankey": "0.12.3"}. |