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

FieldDescription
idShort identifier. Must match the file basename.
nameHuman-readable label.
sourceGit URL, local path, or another <alias>/<id> shorthand.

Optional fields

FieldDescription
descriptionOne-line summary shown in search results.
tagsArray of strings used for search matching.
authorsArray of author names.
licenseSPDX identifier or license name.
homepageProject homepage URL.
typeTemplate category, e.g. cli, tui, web, lib.
languagePrimary language, e.g. go, rust, ts, python.
versionTemplate version.
updated_atISO 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.