Registries
Template metadata file
Each template in a registry is described by a file under templates/<id>.toml.
Example
id = "go-cli"
name = "Go CLI"
description = "Minimal Go CLI starter"
source = "https://github.com/example/go-cli-template.git"
tags = ["go", "cli"]
authors = ["Example Team"]
license = "MIT"
homepage = "https://github.com/example/go-cli-template"
type = "cli"
language = "go"
version = "0.1.0"
updated_at = "2026-01-01"
Required fields
| Field | Description |
|---|---|
id | Short identifier. Must match the file basename. |
name | Human-readable label. |
source | Git URL, local path, or another <alias>/<id> shorthand. |
Optional fields
| Field | Description |
|---|---|
description | One-line summary shown in search results. |
tags | Array of strings used for search matching. |
authors | Array of author names. |
license | SPDX identifier or license name. |
homepage | Project homepage URL. |
type | Template category, e.g. cli, tui, web, lib. |
language | Primary language, e.g. go, rust, ts, python. |
version | Template version. |
updated_at | ISO 8601 date. |
id must match filename
A file named templates/go-cli.toml must have id = "go-cli". This prevents spin add official/go-cli from resolving to a file with a different name.