[{"data":1,"prerenderedAt":450},["ShallowReactive",2],{"navigation_docs":3,"-docs-guide-search":145,"-docs-guide-search-surround":445},[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":35,"body":147,"description":438,"extension":439,"links":440,"meta":441,"navigation":442,"path":36,"seo":443,"stem":37,"__hash__":444},"docs\u002Fdocs\u002F4.guide\u002F4.search.md",{"type":148,"value":149,"toc":431},"minimark",[150,155,167,193,196,227,230,249,253,275,282,290,295,298,312,315,332,336,370,373,411,417,421,427],[151,152,154],"h2",{"id":153},"register-a-registry","Register a registry",[156,157,158,159,162,163,166],"p",{},"A registry is a git repo or local directory with ",[160,161,100],"code",{}," and a ",[160,164,165],{},"templates\u002F"," directory.",[156,168,169,170,172,173,176,177,180,181,184,185,188,189,192],{},"On first run, ",[160,171,130],{},", ",[160,174,175],{},"spin new \u003Calias>\u002F\u003Cid>",", and ",[160,178,179],{},"spin add \u003Calias>\u002F\u003Cid>"," automatically register the built-in official registry (",[160,182,183],{},"official","), so search works out of the box. Removing it later (",[160,186,187],{},"spin registry remove official",") is respected: it is never re-added while ",[160,190,191],{},"registries.json"," exists.",[156,194,195],{},"To register additional registries:",[197,198,203],"pre",{"className":199,"code":200,"language":201,"meta":202,"style":202},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","spin registry add official https:\u002F\u002Fgithub.com\u002Fexample\u002Fspin-registry.git\n","sh","",[160,204,205],{"__ignoreMap":202},[206,207,210,214,218,221,224],"span",{"class":208,"line":209},"line",1,[206,211,213],{"class":212},"sBMFI","spin",[206,215,217],{"class":216},"sfazB"," registry",[206,219,220],{"class":216}," add",[206,222,223],{"class":216}," official",[206,225,226],{"class":216}," https:\u002F\u002Fgithub.com\u002Fexample\u002Fspin-registry.git\n",[156,228,229],{},"Or use a local path:",[197,231,233],{"className":199,"code":232,"language":201,"meta":202,"style":202},"spin registry add local ~\u002Fcode\u002Fspin-registry\n",[160,234,235],{"__ignoreMap":202},[206,236,237,239,241,243,246],{"class":208,"line":209},[206,238,213],{"class":212},[206,240,217],{"class":216},[206,242,220],{"class":216},[206,244,245],{"class":216}," local",[206,247,248],{"class":216}," ~\u002Fcode\u002Fspin-registry\n",[151,250,252],{"id":251},"search","Search",[197,254,256],{"className":199,"code":255,"language":201,"meta":202,"style":202},"spin search \"go cli\"\n",[160,257,258],{"__ignoreMap":202},[206,259,260,262,265,269,272],{"class":208,"line":209},[206,261,213],{"class":212},[206,263,264],{"class":216}," search",[206,266,268],{"class":267},"sMK4o"," \"",[206,270,271],{"class":216},"go cli",[206,273,274],{"class":267},"\"\n",[156,276,277,278,281],{},"Results include registry templates (shown as ",[160,279,280],{},"\u003Calias>\u002F\u003Cid>",") and pinned\ntemplates (shown by name without an alias prefix):",[197,283,288],{"className":284,"code":286,"language":287},[285],"language-text","ALIAS\u002FID        NAME        LANG   DESCRIPTION\nofficial\u002Fgo-cli Go CLI      go     Minimal Go CLI starter\nmy-cli          My CLI      rust   Custom rust CLI\n","text",[160,289,286],{"__ignoreMap":202},[291,292],"img",{"alt":293,"src":294},"A recorded terminal demo of searching a registry and adding a result.","\u002Fdemos\u002Fsearch.gif",[156,296,297],{},"Add a result with its shorthand:",[197,299,301],{"className":199,"code":300,"language":201,"meta":202,"style":202},"spin add official\u002Fgo-cli\n",[160,302,303],{"__ignoreMap":202},[206,304,305,307,309],{"class":208,"line":209},[206,306,213],{"class":212},[206,308,220],{"class":216},[206,310,311],{"class":216}," official\u002Fgo-cli\n",[156,313,314],{},"Then scaffold from it:",[197,316,318],{"className":199,"code":317,"language":201,"meta":202,"style":202},"spin new myapp official\u002Fgo-cli\n",[160,319,320],{"__ignoreMap":202},[206,321,322,324,327,330],{"class":208,"line":209},[206,323,213],{"class":212},[206,325,326],{"class":216}," new",[206,328,329],{"class":216}," myapp",[206,331,311],{"class":216},[151,333,335],{"id":334},"limit-and-json-output","Limit and JSON output",[197,337,339],{"className":199,"code":338,"language":201,"meta":202,"style":202},"spin search rust --limit 5\nspin search tauri --json\n",[160,340,341,357],{"__ignoreMap":202},[206,342,343,345,347,350,353],{"class":208,"line":209},[206,344,213],{"class":212},[206,346,264],{"class":216},[206,348,349],{"class":216}," rust",[206,351,352],{"class":216}," --limit",[206,354,356],{"class":355},"sbssI"," 5\n",[206,358,360,362,364,367],{"class":208,"line":359},2,[206,361,213],{"class":212},[206,363,264],{"class":216},[206,365,366],{"class":216}," tauri",[206,368,369],{"class":216}," --json\n",[151,371,39],{"id":372},"manage-registries",[197,374,376],{"className":199,"code":375,"language":201,"meta":202,"style":202},"spin registry list\nspin registry update official\nspin registry remove official\n",[160,377,378,387,399],{"__ignoreMap":202},[206,379,380,382,384],{"class":208,"line":209},[206,381,213],{"class":212},[206,383,217],{"class":216},[206,385,386],{"class":216}," list\n",[206,388,389,391,393,396],{"class":208,"line":359},[206,390,213],{"class":212},[206,392,217],{"class":216},[206,394,395],{"class":216}," update",[206,397,398],{"class":216}," official\n",[206,400,402,404,406,409],{"class":208,"line":401},3,[206,403,213],{"class":212},[206,405,217],{"class":216},[206,407,408],{"class":216}," remove",[206,410,398],{"class":216},[156,412,413,416],{},[160,414,415],{},"spin registry update"," fetches the latest commits for git registries. Local registries are skipped.",[151,418,420],{"id":419},"storage-layout","Storage layout",[197,422,425],{"className":423,"code":424,"language":287},[285],"~\u002F.config\u002Fspin\u002F\n  registries.json      # registered registries\n  registries\u002F        # cloned or symlinked registry contents\n    official\u002F\n",[160,426,424],{"__ignoreMap":202},[428,429,430],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":202,"searchDepth":359,"depth":359,"links":432},[433,434,435,436,437],{"id":153,"depth":359,"text":154},{"id":251,"depth":359,"text":252},{"id":334,"depth":359,"text":335},{"id":372,"depth":359,"text":39},{"id":419,"depth":359,"text":420},"Search registries and pinned templates without a network round-trip.","md",null,{},true,{"title":35,"description":438},"HDpJfY4QFY3SUxi_D5SeR4a8fmyQ-T_1xCfICNEH24o",[446,448],{"title":31,"path":32,"stem":33,"description":447,"children":-1},"Pinned templates are local copies. Over time the upstream source changes. spin update refreshes the cache.",{"title":39,"path":40,"stem":41,"description":449,"children":-1},"Register, list, update, and remove template registries.",1787755180240]