Makes a new HTML app over a workspace, from Kater's starter page.
It writes a kater.app.yaml manifest and a starter index.html, with no build. Give the workspace with --workspace, or make one with --new-workspace. See Build an app with your agent.
Examples
Terminal window
# Make an app named platform_spend_review over the ad_reporting workspace
Optional. The app’s name in lower snake case, such as platform_spend_review, of 100 characters or fewer. It is the name of the app’s folder. It is the same as --name, so give one of them.
Options
Option
Description
--target-path <path>
The workspace the app reads, as --workspace gives it. With --new-workspace, the folder that the new workspace goes in.
--name <name>
The app’s name. It is the same as NAME.
--duplicate-from <path>
An app to copy, by its folder from the content root, such as connections/snowflake_prod_connection/workspaces/ad_reporting/apps/paid_media_performance. It must be in the same connection.
--label <text>
The app’s title, as people see it, such as "Platform spend review".
--description <text>
What the app is for, in a sentence or two.
--metadata <json>
The app’s label and description as a JSON object, such as {"label": "Platform spend review"}. Do not give it with --label or --description.
--dry-run
Shows what it would write, with its revisions, and writes nothing.
--from-model <model>
The shared model that the new workspace reads, as its type and name, such as semantic.ad_reporting. Use it only with --new-workspace.
--reuse-existing
When the same app is already there, Kater gives it back and writes nothing. Kater refuses an app with other content.
The connection to make the new workspace in, such as snowflake_prod_connection, when no --target-path names one.
--kind <kind>
Where a new workspace goes: personal puts it in your own folder, and connection puts it in the connection’s workspaces/ folder. The default is personal.
--workspace <path>
The workspace the app reads, by its complete path, such as connections/snowflake_prod_connection/workspaces/ad_reporting. Without it or --new-workspace, Kater uses the workspace in your scope.
--new-workspace <name>
Makes a workspace for the app, with this name. You cannot use it with --workspace or --duplicate-from.
--workspace-label <text>
The label of the workspace that --new-workspace makes.
--appearance <mode>
The starter page’s appearance: light or dark. Without it, the page is light. A copy keeps the page of the app it copies, so --duplicate-from ignores it.
--timezone <zone>
The time zone of --cron, such as America/New_York. Without it, the workflow runs in your own time zone.
--start <type>
The type to start from, as in New: page, deck, report, digest or chat. Its first page names its template. See Start from a type.
--numbers <mode>
With --start deck or report: live gets new numbers on --cron, and static keeps the numbers of today.
--cron <cron>
When a Live deck, report or digest gets new numbers, such as "0 8 * * 1" for every Monday at 8:00 AM.
--source <path>
Source data: a dashboard, a query, a shared model or an app the app reads, by its path from the content root. Give it once for each. Without --workspace, the app goes over the workspace of the first dashboard or query. You can give it more than one time.
--paper <size>
With --start report: letter or a4.
--filters <mode>
With --start page: on gives the page a row for its filters.
It also takes the global options--json, --kater-root, --scope and --help.
Where the app goes
Over your personal workspace, the app goes in your own users/<you>/apps/<name>/ folder, beside your workspaces.
Over a connection workspace, the app goes in that workspace’s apps/<name>/ folder. For ad_reporting, that is connections/snowflake_prod_connection/workspaces/ad_reporting/apps/platform_spend_review/.
A name that is already there is refused.
There is no build. Kater serves the files as they are.
--start makes the app from a type, with the same choices as New in the portal. A deck, a report or a digest is a document: Kater writes its manifest, its first page and its snapshot workflow in one commit. The workflow is in your own ai_tools/workflows/ folder, and writes names the app. With --numbers live it runs on --cron. With --numbers static it has no schedule, and its one run keeps the numbers of today. Run the workflow once when the page is written, so the document has its first snapshot. See Workflows.
Make it only when nothing changed
A dry run gives a revision for each thing the app starts from. These are the workspace, the starter page, its appearance and the app it copies. Give them back with the options of the same names, and Kater makes the app only while each one is the same. When one changed, Kater stops the create and says that it is stale. Make a dry run again, and try again.
Options an app does not take
For what the create commands have in common, see Create commands.