[{"data":1,"prerenderedAt":561},["ShallowReactive",2],{"navigation_docs":3,"-docs-guide-troubleshooting":145,"-docs-guide-troubleshooting-surround":556},[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":43,"body":147,"description":549,"extension":550,"links":551,"meta":552,"navigation":553,"path":44,"seo":554,"stem":45,"__hash__":555},"docs\u002Fdocs\u002F4.guide\u002F6.troubleshooting.md",{"type":148,"value":149,"toc":537},"minimark",[150,158,168,172,222,226,232,235,272,276,285,289,292,306,309,351,355,361,363,388,394,417,421,426,443,449,453,463,494,501,533],[151,152,154,157],"h2",{"id":153},"spin-new-cannot-find-the-template",[155,156,110],"code",{}," cannot find the template",[159,160,165],"pre",{"className":161,"code":163,"language":164},[162],"language-text","\"my-template\" is not a local path, git URL, or pinned name\n","text",[155,166,163],{"__ignoreMap":167},"",[169,170,171],"p",{},"Check that:",[173,174,175,190,210,215],"ul",{},[176,177,178,179,182,183,182,186,189],"li",{},"The path starts with ",[155,180,181],{},"\u002F",", ",[155,184,185],{},".\u002F",[155,187,188],{},"~\u002F",", or is an absolute path.",[176,191,192,193,182,196,182,199,182,202,205,206,209],{},"The git URL starts with ",[155,194,195],{},"http:\u002F\u002F",[155,197,198],{},"https:\u002F\u002F",[155,200,201],{},"git@",[155,203,204],{},"git:\u002F\u002F",", or ",[155,207,208],{},"ssh:\u002F\u002F",".",[176,211,212,213,209],{},"The pinned name appears in ",[155,214,118],{},[176,216,217,218,221],{},"The registry shorthand is registered (",[155,219,220],{},"spin registry list",") and the template exists in that registry.",[151,223,225],{"id":224},"pinned-template-missing-on-disk","Pinned template missing on disk",[159,227,230],{"className":228,"code":229,"language":164},[162],"spin new: pinned \"go-cli-template\" missing on disk at \u002Fhome\u002Fme\u002F.config\u002Fspin\u002Ftemplates\u002Fgo-cli-template\n",[155,231,229],{"__ignoreMap":167},[169,233,234],{},"The cache was deleted or moved. Re-pin the template:",[159,236,240],{"className":237,"code":238,"language":239,"meta":167,"style":167},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","spin remove go-cli-template --purge\nspin add https:\u002F\u002Fgithub.com\u002Fexample\u002Fgo-cli-template.git\n","sh",[155,241,242,261],{"__ignoreMap":167},[243,244,247,251,255,258],"span",{"class":245,"line":246},"line",1,[243,248,250],{"class":249},"sBMFI","spin",[243,252,254],{"class":253},"sfazB"," remove",[243,256,257],{"class":253}," go-cli-template",[243,259,260],{"class":253}," --purge\n",[243,262,264,266,269],{"class":245,"line":263},2,[243,265,250],{"class":249},[243,267,268],{"class":253}," add",[243,270,271],{"class":253}," https:\u002F\u002Fgithub.com\u002Fexample\u002Fgo-cli-template.git\n",[151,273,275],{"id":274},"post-hook-fails","Post-hook fails",[169,277,278,280,281,284],{},[155,279,110],{}," writes the rendered files, then runs ",[155,282,283],{},"[[post]]"," steps. If a post-hook fails, the files are already on disk. Fix the template or your environment, then re-run the failed command manually in the project directory.",[151,286,288],{"id":287},"git-clone-fails-with-exit-status-128","Git clone fails with exit status 128",[169,290,291],{},"Common causes:",[173,293,294,297,300],{},[176,295,296],{},"The repository does not exist or is private.",[176,298,299],{},"The network is unreachable.",[176,301,302,305],{},[155,303,304],{},"GIT_TERMINAL_PROMPT=0"," disables password prompts; use SSH keys or a personal access token.",[169,307,308],{},"Test the clone directly:",[159,310,312],{"className":237,"code":311,"language":239,"meta":167,"style":167},"GIT_TERMINAL_PROMPT=0 git clone --depth=1 \u003Curl> \u002Ftmp\u002Ftest-clone\n",[155,313,314],{"__ignoreMap":167},[243,315,316,320,324,327,330,333,336,339,342,345,348],{"class":245,"line":246},[243,317,319],{"class":318},"sTEyZ","GIT_TERMINAL_PROMPT",[243,321,323],{"class":322},"sMK4o","=",[243,325,326],{"class":253},"0",[243,328,329],{"class":249}," git",[243,331,332],{"class":253}," clone",[243,334,335],{"class":253}," --depth=1",[243,337,338],{"class":322}," \u003C",[243,340,341],{"class":253},"ur",[243,343,344],{"class":318},"l",[243,346,347],{"class":322},">",[243,349,350],{"class":253}," \u002Ftmp\u002Ftest-clone\n",[151,352,354],{"id":353},"registry-shorthand-not-found","Registry shorthand not found",[159,356,359],{"className":357,"code":358,"language":164},[162],"alias \"official\" not registered\n",[155,360,358],{"__ignoreMap":167},[169,362,171],{},[173,364,365,370,377],{},[176,366,367,368,209],{},"The alias is registered: ",[155,369,220],{},[176,371,372,373,376],{},"The registry has a ",[155,374,375],{},"templates\u002Fgo-cli.toml"," file.",[176,378,379,380,383,384,387],{},"The ",[155,381,382],{},"id"," inside ",[155,385,386],{},"go-cli.toml"," matches the filename.",[151,389,391,393],{"id":390},"spin-search-returns-nothing",[155,392,130],{}," returns nothing",[173,395,396,401,408],{},[176,397,398,399,209],{},"Verify the registry is registered: ",[155,400,220],{},[176,402,403,404,407],{},"Run ",[155,405,406],{},"spin registry update \u003Calias>"," to refresh a git registry.",[176,409,410,411,413,414,209],{},"Check that the registry contains ",[155,412,100],{}," and ",[155,415,416],{},"templates\u002F*.toml",[151,418,420],{"id":419},"performance","Performance",[169,422,423,425],{},[155,424,250],{}," is designed to be fast enough that caching is unnecessary:",[173,427,428,433,438],{},[176,429,430,432],{},[155,431,130],{}," reads local TOML files; it does not hit the network.",[176,434,435,437],{},[155,436,110],{}," clones once per template; pinned templates reuse the local cache.",[176,439,440,442],{},[155,441,122],{}," only touches the templates you ask it to.",[169,444,445,446,448],{},"If a registry has hundreds of templates, ",[155,447,130],{}," may take a moment the first time. There is no background indexing; each run scans the registry directories.",[151,450,452],{"id":451},"still-stuck","Still stuck?",[169,454,455,456,459,460,462],{},"Run with ",[155,457,458],{},"--dry-run"," to see what ",[155,461,110],{}," would write without changing files:",[159,464,466],{"className":237,"code":465,"language":239,"meta":167,"style":167},"spin new myapp --template \u003Cspec> --dry-run\n",[155,467,468],{"__ignoreMap":167},[243,469,470,472,475,478,481,483,486,489,491],{"class":245,"line":246},[243,471,250],{"class":249},[243,473,474],{"class":253}," new",[243,476,477],{"class":253}," myapp",[243,479,480],{"class":253}," --template",[243,482,338],{"class":322},[243,484,485],{"class":253},"spe",[243,487,488],{"class":318},"c",[243,490,347],{"class":322},[243,492,493],{"class":253}," --dry-run\n",[169,495,496,497,500],{},"Use ",[155,498,499],{},"--print-params"," to inspect how CLI flags are parsed:",[159,502,504],{"className":237,"code":503,"language":239,"meta":167,"style":167},"spin new myapp --template \u003Cspec> --print-params --param key=value\n",[155,505,506],{"__ignoreMap":167},[243,507,508,510,512,514,516,518,520,522,524,527,530],{"class":245,"line":246},[243,509,250],{"class":249},[243,511,474],{"class":253},[243,513,477],{"class":253},[243,515,480],{"class":253},[243,517,338],{"class":322},[243,519,485],{"class":253},[243,521,488],{"class":318},[243,523,347],{"class":322},[243,525,526],{"class":253}," --print-params",[243,528,529],{"class":253}," --param",[243,531,532],{"class":253}," key=value\n",[534,535,536],"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 .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}",{"title":167,"searchDepth":263,"depth":263,"links":538},[539,541,542,543,544,545,547,548],{"id":153,"depth":263,"text":540},"spin new cannot find the template",{"id":224,"depth":263,"text":225},{"id":274,"depth":263,"text":275},{"id":287,"depth":263,"text":288},{"id":353,"depth":263,"text":354},{"id":390,"depth":263,"text":546},"spin search returns nothing",{"id":419,"depth":263,"text":420},{"id":451,"depth":263,"text":452},"Common problems and how to fix them.","md",null,{},true,{"title":43,"description":549},"t14o-lhLakNyqADdkL61PJQ378Y2qoj019vs14_rnCQ",[557,559],{"title":39,"path":40,"stem":41,"description":558,"children":-1},"Register, list, update, and remove template registries.",{"title":47,"path":48,"stem":49,"description":560,"children":-1},"Create a spin template from scratch. Write a manifest, add params, write template files, add hooks, test it, and publish it.",1787755180240]