On this page
Kater CLI Topics
Structured model tags
The tags in a model's frontmatter, and how commands select models by them.
Model and workspace frontmatter uses a map from your own keys to lists of strings. The suggested keys are team, source_data, topic and curated. They are suggestions, not an enum or an eligibility gate.
tags: team: [marketing/lifecycle, sales] source_data: [ga4] topic: [sessions, paid_media] curated: []- Defaults. Leaving tags out means
{}. An explicit empty map clears tags. An empty value list records that the key is present. - Tags grant nothing. Model tags never infer ownership or certification. A field’s
@tagsstays an unkeyed list of strings. - Case counts. Keys and values are case-sensitive.
- Matching. A selector map such as
{"team": ["marketing"], "curated": []}matches any criterion: the exact value or slash descendants (marketing/lifecycle) under the same key, or the presence ofcuratedeven when its list is empty. Slash paths make a hierarchy within a key, and values under different keys stay distinct. A bare key wins over value limits for the same selector key. - JSON. MCP and operation JSON use
tags: {"team": ["marketing/lifecycle", "sales"]}.
# List models tagged for marketing, or marked curatedkater model list --select "tag:team=marketing tag:curated"# Tag a new semantic model for two teamskater new semantic-model --target-path PATH --name NAME --tags team=marketing/lifecycle --tags team=sales# Clear the tag map while you create a modelkater new semantic-model --target-path PATH --name NAME --metadata '{"tags": {}}'Workspace creation accepts an optional from_model: a unique model name, canonical address or typed identity. --from-model MODEL selects the first shared source. Without it, the workspace’s analytics are not set up until you run kater workspace source use MODEL --scope WORKSPACE.