[{"data":1,"prerenderedAt":890},["ShallowReactive",2],{"navigation_docs":3,"-docs-registries-registry-toml":145,"-docs-registries-registry-toml-surround":885},[4,8,12,16,51,81,103],{"title":5,"path":6,"stem":7},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F1.introduction",{"title":9,"path":10,"stem":11},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002F2.getting-started",{"title":13,"path":14,"stem":15},"Environment variables","\u002Fdocs\u002Fenvironment-variables","docs\u002F3.environment-variables",{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":50},"Guide","i-lucide-book-open","\u002Fdocs\u002Fguide","docs\u002F4.guide",[22,26,30,34,38,42,46],{"title":23,"path":24,"stem":25},"Scaffold a project","\u002Fdocs\u002Fguide\u002Fscaffold","docs\u002F4.guide\u002F1.scaffold",{"title":27,"path":28,"stem":29},"Pin and manage templates","\u002Fdocs\u002Fguide\u002Fpin","docs\u002F4.guide\u002F2.pin",{"title":31,"path":32,"stem":33},"Update pinned templates","\u002Fdocs\u002Fguide\u002Fupdating","docs\u002F4.guide\u002F3.updating",{"title":35,"path":36,"stem":37},"Find templates","\u002Fdocs\u002Fguide\u002Fsearch","docs\u002F4.guide\u002F4.search",{"title":39,"path":40,"stem":41},"Manage registries","\u002Fdocs\u002Fguide\u002Fregistry","docs\u002F4.guide\u002F5.registry",{"title":43,"path":44,"stem":45},"Troubleshooting","\u002Fdocs\u002Fguide\u002Ftroubleshooting","docs\u002F4.guide\u002F6.troubleshooting",{"title":47,"path":48,"stem":49},"Build your first template","\u002Fdocs\u002Fguide\u002Fcreate-template","docs\u002F4.guide\u002F7.create-template",false,{"title":52,"icon":53,"path":54,"stem":55,"children":56,"page":50},"Templates","i-lucide-layout-template","\u002Fdocs\u002Ftemplates","docs\u002F5.templates",[57,61,65,69,73,77],{"title":58,"path":59,"stem":60},"Template anatomy","\u002Fdocs\u002Ftemplates\u002Fanatomy","docs\u002F5.templates\u002F1.anatomy",{"title":62,"path":63,"stem":64},"Template params","\u002Fdocs\u002Ftemplates\u002Fparams","docs\u002F5.templates\u002F2.params",{"title":66,"path":67,"stem":68},"Template rendering","\u002Fdocs\u002Ftemplates\u002Ftemplate-rendering","docs\u002F5.templates\u002F3.template-rendering",{"title":70,"path":71,"stem":72},"Hooks","\u002Fdocs\u002Ftemplates\u002Fhooks","docs\u002F5.templates\u002F4.hooks",{"title":74,"path":75,"stem":76},"Publish a template","\u002Fdocs\u002Ftemplates\u002Fpublish","docs\u002F5.templates\u002F5.publish",{"title":78,"path":79,"stem":80},"spin.toml","\u002Fdocs\u002Ftemplates\u002Fspin-toml","docs\u002F5.templates\u002F6.spin-toml",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":50},"Registries","i-lucide-database","\u002Fdocs\u002Fregistries","docs\u002F6.registries",[87,91,95,99],{"title":88,"path":89,"stem":90},"Registry anatomy","\u002Fdocs\u002Fregistries\u002Fanatomy","docs\u002F6.registries\u002F1.anatomy",{"title":92,"path":93,"stem":94},"Template metadata file","\u002Fdocs\u002Fregistries\u002Ftemplate-metadata","docs\u002F6.registries\u002F2.template-metadata",{"title":96,"path":97,"stem":98},"Run a registry","\u002Fdocs\u002Fregistries\u002Frun","docs\u002F6.registries\u002F3.run",{"title":100,"path":101,"stem":102},"registry.toml","\u002Fdocs\u002Fregistries\u002Fregistry-toml","docs\u002F6.registries\u002F4.registry-toml",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":50},"Commands","i-lucide-terminal","\u002Fdocs\u002Fcommands","docs\u002F7.commands",[109,113,117,121,125,129,133,137,141],{"title":110,"path":111,"stem":112},"spin new","\u002Fdocs\u002Fcommands\u002Fnew","docs\u002F7.commands\u002F1.new",{"title":114,"path":115,"stem":116},"spin add","\u002Fdocs\u002Fcommands\u002Fadd","docs\u002F7.commands\u002F2.add",{"title":118,"path":119,"stem":120},"spin list","\u002Fdocs\u002Fcommands\u002Flist","docs\u002F7.commands\u002F3.list",{"title":122,"path":123,"stem":124},"spin update","\u002Fdocs\u002Fcommands\u002Fupdate","docs\u002F7.commands\u002F4.update",{"title":126,"path":127,"stem":128},"spin remove","\u002Fdocs\u002Fcommands\u002Fremove","docs\u002F7.commands\u002F5.remove",{"title":130,"path":131,"stem":132},"spin search","\u002Fdocs\u002Fcommands\u002Fsearch","docs\u002F7.commands\u002F6.search",{"title":134,"path":135,"stem":136},"spin registry","\u002Fdocs\u002Fcommands\u002Fregistry","docs\u002F7.commands\u002F7.registry",{"title":138,"path":139,"stem":140},"spin init","\u002Fdocs\u002Fcommands\u002Finit","docs\u002F7.commands\u002F8.init",{"title":142,"path":143,"stem":144},"spin version","\u002Fdocs\u002Fcommands\u002Fversion","docs\u002F7.commands\u002F9.version",{"id":146,"title":100,"body":147,"description":878,"extension":879,"links":880,"meta":881,"navigation":882,"path":101,"seo":883,"stem":102,"__hash__":884},"docs\u002Fdocs\u002F6.registries\u002F4.registry-toml.md",{"type":148,"value":149,"toc":867},"minimark",[150,155,166,180,183,288,293,397,401,415,616,619,785,789,798,842,845,849,863],[151,152,154],"h2",{"id":153},"layout","Layout",[156,157,162],"pre",{"className":158,"code":160,"language":161},[159],"language-text","registry\u002F\n  registry.toml\n  templates\u002F\n    go-cli.toml\n    rust-api.toml\n","text",[163,164,160],"code",{"__ignoreMap":165},"",[167,168,169,171,172,175,176,179],"p",{},[163,170,130],{}," and ",[163,173,174],{},"spin add \u003Calias>\u002F\u003Cid>"," read this directory. ",[163,177,178],{},"spin registry update"," refreshes git registries from upstream.",[151,181,100],{"id":182},"registrytoml",[156,184,188],{"className":185,"code":186,"language":187,"meta":165,"style":165},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","id = \"official\"\nname = \"Official Spin Templates\"\ndescription = \"Curated templates maintained by the spin team.\"\nhomepage = \"https:\u002F\u002Fgithub.com\u002Fexample\u002Fspin-registry\"\nmaintainer = \"Spin Team\"\nlicense = \"MIT\"\n","toml",[163,189,190,213,228,243,258,273],{"__ignoreMap":165},[191,192,195,199,203,206,210],"span",{"class":193,"line":194},"line",1,[191,196,198],{"class":197},"sTEyZ","id ",[191,200,202],{"class":201},"sMK4o","=",[191,204,205],{"class":201}," \"",[191,207,209],{"class":208},"sfazB","official",[191,211,212],{"class":201},"\"\n",[191,214,216,219,221,223,226],{"class":193,"line":215},2,[191,217,218],{"class":197},"name ",[191,220,202],{"class":201},[191,222,205],{"class":201},[191,224,225],{"class":208},"Official Spin Templates",[191,227,212],{"class":201},[191,229,231,234,236,238,241],{"class":193,"line":230},3,[191,232,233],{"class":197},"description ",[191,235,202],{"class":201},[191,237,205],{"class":201},[191,239,240],{"class":208},"Curated templates maintained by the spin team.",[191,242,212],{"class":201},[191,244,246,249,251,253,256],{"class":193,"line":245},4,[191,247,248],{"class":197},"homepage ",[191,250,202],{"class":201},[191,252,205],{"class":201},[191,254,255],{"class":208},"https:\u002F\u002Fgithub.com\u002Fexample\u002Fspin-registry",[191,257,212],{"class":201},[191,259,261,264,266,268,271],{"class":193,"line":260},5,[191,262,263],{"class":197},"maintainer ",[191,265,202],{"class":201},[191,267,205],{"class":201},[191,269,270],{"class":208},"Spin Team",[191,272,212],{"class":201},[191,274,276,279,281,283,286],{"class":193,"line":275},6,[191,277,278],{"class":197},"license ",[191,280,202],{"class":201},[191,282,205],{"class":201},[191,284,285],{"class":208},"MIT",[191,287,212],{"class":201},[289,290,292],"h3",{"id":291},"fields","Fields",[294,295,296,312],"table",{},[297,298,299],"thead",{},[300,301,302,306,309],"tr",{},[303,304,305],"th",{},"Field",[303,307,308],{},"Required",[303,310,311],{},"Description",[313,314,315,333,345,361,373,385],"tbody",{},[300,316,317,323,326],{},[318,319,320],"td",{},[163,321,322],{},"id",[318,324,325],{},"yes",[318,327,328,329,332],{},"Machine identifier. Must match the alias used with ",[163,330,331],{},"spin registry add",".",[300,334,335,340,342],{},[318,336,337],{},[163,338,339],{},"name",[318,341,325],{},[318,343,344],{},"Human-readable registry name.",[300,346,347,352,355],{},[318,348,349],{},[163,350,351],{},"description",[318,353,354],{},"no",[318,356,357,358,332],{},"Short summary shown in ",[163,359,360],{},"spin registry list",[300,362,363,368,370],{},[318,364,365],{},[163,366,367],{},"homepage",[318,369,354],{},[318,371,372],{},"Registry homepage or repository URL.",[300,374,375,380,382],{},[318,376,377],{},[163,378,379],{},"maintainer",[318,381,354],{},[318,383,384],{},"Maintainer name or contact.",[300,386,387,392,394],{},[318,388,389],{},[163,390,391],{},"license",[318,393,354],{},[318,395,396],{},"Registry metadata license.",[151,398,400],{"id":399},"templatestoml","templates\u002F*.toml",[167,402,403,404,407,408,411,412,414],{},"Each template in the registry gets one TOML file in ",[163,405,406],{},"templates\u002F",". The file basename (without ",[163,409,410],{},".toml",") must match the ",[163,413,322],{}," field.",[156,416,418],{"className":185,"code":417,"language":187,"meta":165,"style":165},"id = \"go-cli\"\nname = \"Go CLI\"\ndescription = \"Minimal Go CLI with cobra and charmbracelet\u002Flog.\"\nsource = \"https:\u002F\u002Fgithub.com\u002Fexample\u002Fgo-cli-template.git\"\ntags = [\"cli\", \"go\", \"charm\"]\nauthors = [\"Sam\"]\nlicense = \"MIT\"\nhomepage = \"https:\u002F\u002Fgithub.com\u002Fexample\u002Fgo-cli-template\"\ntype = \"cli\"\nlanguage = \"go\"\nversion = \"0.2.0\"\nupdated_at = \"2026-07-09\"\n",[163,419,420,433,446,459,473,513,531,544,558,572,586,601],{"__ignoreMap":165},[191,421,422,424,426,428,431],{"class":193,"line":194},[191,423,198],{"class":197},[191,425,202],{"class":201},[191,427,205],{"class":201},[191,429,430],{"class":208},"go-cli",[191,432,212],{"class":201},[191,434,435,437,439,441,444],{"class":193,"line":215},[191,436,218],{"class":197},[191,438,202],{"class":201},[191,440,205],{"class":201},[191,442,443],{"class":208},"Go CLI",[191,445,212],{"class":201},[191,447,448,450,452,454,457],{"class":193,"line":230},[191,449,233],{"class":197},[191,451,202],{"class":201},[191,453,205],{"class":201},[191,455,456],{"class":208},"Minimal Go CLI with cobra and charmbracelet\u002Flog.",[191,458,212],{"class":201},[191,460,461,464,466,468,471],{"class":193,"line":245},[191,462,463],{"class":197},"source ",[191,465,202],{"class":201},[191,467,205],{"class":201},[191,469,470],{"class":208},"https:\u002F\u002Fgithub.com\u002Fexample\u002Fgo-cli-template.git",[191,472,212],{"class":201},[191,474,475,478,480,483,486,489,491,494,496,499,501,503,505,508,510],{"class":193,"line":260},[191,476,477],{"class":197},"tags ",[191,479,202],{"class":201},[191,481,482],{"class":201}," [",[191,484,485],{"class":201},"\"",[191,487,488],{"class":208},"cli",[191,490,485],{"class":201},[191,492,493],{"class":201},",",[191,495,205],{"class":201},[191,497,498],{"class":208},"go",[191,500,485],{"class":201},[191,502,493],{"class":201},[191,504,205],{"class":201},[191,506,507],{"class":208},"charm",[191,509,485],{"class":201},[191,511,512],{"class":201},"]\n",[191,514,515,518,520,522,524,527,529],{"class":193,"line":275},[191,516,517],{"class":197},"authors ",[191,519,202],{"class":201},[191,521,482],{"class":201},[191,523,485],{"class":201},[191,525,526],{"class":208},"Sam",[191,528,485],{"class":201},[191,530,512],{"class":201},[191,532,534,536,538,540,542],{"class":193,"line":533},7,[191,535,278],{"class":197},[191,537,202],{"class":201},[191,539,205],{"class":201},[191,541,285],{"class":208},[191,543,212],{"class":201},[191,545,547,549,551,553,556],{"class":193,"line":546},8,[191,548,248],{"class":197},[191,550,202],{"class":201},[191,552,205],{"class":201},[191,554,555],{"class":208},"https:\u002F\u002Fgithub.com\u002Fexample\u002Fgo-cli-template",[191,557,212],{"class":201},[191,559,561,564,566,568,570],{"class":193,"line":560},9,[191,562,563],{"class":197},"type ",[191,565,202],{"class":201},[191,567,205],{"class":201},[191,569,488],{"class":208},[191,571,212],{"class":201},[191,573,575,578,580,582,584],{"class":193,"line":574},10,[191,576,577],{"class":197},"language ",[191,579,202],{"class":201},[191,581,205],{"class":201},[191,583,498],{"class":208},[191,585,212],{"class":201},[191,587,589,592,594,596,599],{"class":193,"line":588},11,[191,590,591],{"class":197},"version ",[191,593,202],{"class":201},[191,595,205],{"class":201},[191,597,598],{"class":208},"0.2.0",[191,600,212],{"class":201},[191,602,604,607,609,611,614],{"class":193,"line":603},12,[191,605,606],{"class":197},"updated_at ",[191,608,202],{"class":201},[191,610,205],{"class":201},[191,612,613],{"class":208},"2026-07-09",[191,615,212],{"class":201},[289,617,292],{"id":618},"fields-1",[294,620,621,631],{},[297,622,623],{},[300,624,625,627,629],{},[303,626,305],{},[303,628,308],{},[303,630,311],{},[313,632,633,644,655,666,682,694,706,717,728,749,761,773],{},[300,634,635,639,641],{},[318,636,637],{},[163,638,322],{},[318,640,325],{},[318,642,643],{},"Short template ID. Must match the file basename.",[300,645,646,650,652],{},[318,647,648],{},[163,649,339],{},[318,651,325],{},[318,653,654],{},"Human-readable template name.",[300,656,657,661,663],{},[318,658,659],{},[163,660,351],{},[318,662,354],{},[318,664,665],{},"Shown in search results.",[300,667,668,673,675],{},[318,669,670],{},[163,671,672],{},"source",[318,674,325],{},[318,676,677,678,681],{},"Where the template lives. Can be a git URL, a local path, or another ",[163,679,680],{},"\u003Calias>\u002F\u003Cid>"," shorthand (one level of chaining allowed).",[300,683,684,689,691],{},[318,685,686],{},[163,687,688],{},"tags",[318,690,354],{},[318,692,693],{},"Search keywords.",[300,695,696,701,703],{},[318,697,698],{},[163,699,700],{},"authors",[318,702,354],{},[318,704,705],{},"Template authors.",[300,707,708,712,714],{},[318,709,710],{},[163,711,391],{},[318,713,354],{},[318,715,716],{},"Template license.",[300,718,719,723,725],{},[318,720,721],{},[163,722,367],{},[318,724,354],{},[318,726,727],{},"Template homepage.",[300,729,730,735,737],{},[318,731,732],{},[163,733,734],{},"type",[318,736,354],{},[318,738,739,741,742,741,745,748],{},[163,740,488],{},", ",[163,743,744],{},"tui",[163,746,747],{},"lib",", etc.",[300,750,751,756,758],{},[318,752,753],{},[163,754,755],{},"language",[318,757,354],{},[318,759,760],{},"Primary language.",[300,762,763,768,770],{},[318,764,765],{},[163,766,767],{},"version",[318,769,354],{},[318,771,772],{},"Template version.",[300,774,775,780,782],{},[318,776,777],{},[163,778,779],{},"updated_at",[318,781,354],{},[318,783,784],{},"ISO 8601 date.",[151,786,788],{"id":787},"chaining","Chaining",[167,790,791,792,794,795,797],{},"A template's ",[163,793,672],{}," can point at another registry template using the same ",[163,796,680],{}," shorthand:",[156,799,801],{"className":185,"code":800,"language":187,"meta":165,"style":165},"id = \"go-cli-extended\"\nname = \"Go CLI Extended\"\nsource = \"official\u002Fgo-cli\"\n",[163,802,803,816,829],{"__ignoreMap":165},[191,804,805,807,809,811,814],{"class":193,"line":194},[191,806,198],{"class":197},[191,808,202],{"class":201},[191,810,205],{"class":201},[191,812,813],{"class":208},"go-cli-extended",[191,815,212],{"class":201},[191,817,818,820,822,824,827],{"class":193,"line":215},[191,819,218],{"class":197},[191,821,202],{"class":201},[191,823,205],{"class":201},[191,825,826],{"class":208},"Go CLI Extended",[191,828,212],{"class":201},[191,830,831,833,835,837,840],{"class":193,"line":230},[191,832,463],{"class":197},[191,834,202],{"class":201},[191,836,205],{"class":201},[191,838,839],{"class":208},"official\u002Fgo-cli",[191,841,212],{"class":201},[167,843,844],{},"Only one level of chaining is followed. Cycles are rejected.",[151,846,848],{"id":847},"validation","Validation",[167,850,851,853,854,856,857,859,860,862],{},[163,852,331],{}," refuses a source that does not contain both ",[163,855,100],{}," and a ",[163,858,406],{}," directory. ",[163,861,130],{}," skips individual template files that fail validation, but still indexes the rest of the registry.",[864,865,866],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":165,"searchDepth":215,"depth":215,"links":868},[869,870,873,876,877],{"id":153,"depth":215,"text":154},{"id":182,"depth":215,"text":100,"children":871},[872],{"id":291,"depth":230,"text":292},{"id":399,"depth":215,"text":400,"children":874},[875],{"id":618,"depth":230,"text":292},{"id":787,"depth":215,"text":788},{"id":847,"depth":215,"text":848},"A registry is a directory that contains a registry.toml file and a templates\u002F subdirectory. Registries are registered with spin registry add \u003Calias> \u003Csource>.","md",null,{},true,{"title":100,"description":878},"HJ3HD-TQzT3KhIpHxwkJ3DC5b2udpiGHw8441KdavfA",[886,888],{"title":96,"path":97,"stem":98,"description":887,"children":-1},"You can run a registry from any git repo or local directory that follows the registry layout.",{"title":110,"path":111,"stem":112,"description":889,"children":-1},"Scaffold a new project from a template.",1787755180240]