[{"data":1,"prerenderedAt":558},["ShallowReactive",2],{"navigation_docs":3,"template-charm-tui":145},[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",{"template":146,"readmeAst":193},{"id":147,"name":148,"description":149,"source":150,"repo":151,"tags":152,"authors":158,"type":154,"language":159,"params":160,"hooks":188},"charm-tui","Charm TUI Application","Minimal Charm v2 TUI starter (Bubble Tea runtime) with optional Bubbles, Lip Gloss, Glamour, and CharmTone","https:\u002F\u002Fgithub.com\u002Fspin-templates\u002Fcharm-tui","spin-templates\u002Fcharm-tui",[153,154,155,156,157],"go","tui","charm","bubbletea","terminal",[],"Go",[161,166,171,176,179,182,185],{"name":162,"type":163,"prompt":164,"default":165},"description","textarea","Project description","A minimal Charm v2 TUI starter template",{"name":167,"type":168,"prompt":169,"default":170},"module_path","text","Go module path","github.com\u002Fuser\u002Fmy-charm-tui",{"name":172,"type":173,"prompt":174,"default":175},"use_bubbles","bool","Use Bubbles (spinner, help bar, tabs)?",true,{"name":177,"type":173,"prompt":178,"default":175},"use_lipgloss","Use Lip Gloss (gradients and borders)?",{"name":180,"type":173,"prompt":181,"default":175},"use_glamour","Use Glamour to render the Commands tab?",{"name":183,"type":173,"prompt":184,"default":175},"use_charmtone","Use CharmTone dark background?",{"name":186,"type":173,"prompt":187,"default":175},"use_taskfile","Include a Taskfile (go-task)?",{"post":189},[190,191,192],"go mod tidy","go install .\u002F...","gofmt -w .",{"data":194,"body":196,"toc":551},{"title":147,"description":195},"A minimal Charm terminal UI starter built on Bubble Tea v2, packaged as a spin template. Every Charm library except the Bubble Tea runtime is optional, so you scaffold only what you need.",{"type":197,"children":198},"root",[199,205,239,246,378,384,397,415,421,521,527,535,546],{"type":200,"tag":201,"props":202,"children":203},"element","h1",{"id":147},[204],{"type":168,"value":147},{"type":200,"tag":206,"props":207,"children":208},"p",{},[209,211,220,222,228,230,237],{"type":168,"value":210},"A minimal ",{"type":200,"tag":212,"props":213,"children":217},"a",{"href":214,"rel":215},"https:\u002F\u002Fcharm.sh",[216],"nofollow",[218],{"type":168,"value":219},"Charm",{"type":168,"value":221}," terminal UI starter built on ",{"type":200,"tag":223,"props":224,"children":225},"strong",{},[226],{"type":168,"value":227},"Bubble Tea v2",{"type":168,"value":229},", packaged as a ",{"type":200,"tag":212,"props":231,"children":234},{"href":232,"rel":233},"https:\u002F\u002Fspincli.pages.dev",[216],[235],{"type":168,"value":236},"spin",{"type":168,"value":238}," template. Every Charm library except the Bubble Tea runtime is optional, so you scaffold only what you need.",{"type":200,"tag":240,"props":241,"children":243},"h2",{"id":242},"whats-included",[244],{"type":168,"value":245},"What's included",{"type":200,"tag":247,"props":248,"children":249},"ul",{},[250,270,303,318,340,355],{"type":200,"tag":251,"props":252,"children":253},"li",{},[254,259,261,268],{"type":200,"tag":223,"props":255,"children":256},{},[257],{"type":168,"value":258},"Bubble Tea:",{"type":168,"value":260}," the TUI lib, ",{"type":200,"tag":262,"props":263,"children":265},"code",{"className":264},[],[266],{"type":168,"value":267},"charm.land\u002Fbubbletea\u002Fv2",{"type":168,"value":269}," (Elm-architecture model)",{"type":200,"tag":251,"props":271,"children":272},{},[273,278,280,286,288,294,296,301],{"type":200,"tag":223,"props":274,"children":275},{},[276],{"type":168,"value":277},"Bubbles",{"type":168,"value":279}," ",{"type":200,"tag":281,"props":282,"children":283},"em",{},[284],{"type":168,"value":285},"(optional)",{"type":168,"value":287},": spinner, help bar, and a tab bar (",{"type":200,"tag":262,"props":289,"children":291},{"className":290},[],[292],{"type":168,"value":293},"Welcome",{"type":168,"value":295}," \u002F ",{"type":200,"tag":262,"props":297,"children":299},{"className":298},[],[300],{"type":168,"value":104},{"type":168,"value":302},")",{"type":200,"tag":251,"props":304,"children":305},{},[306,311,312,316],{"type":200,"tag":223,"props":307,"children":308},{},[309],{"type":168,"value":310},"Lip Gloss",{"type":168,"value":279},{"type":200,"tag":281,"props":313,"children":314},{},[315],{"type":168,"value":285},{"type":168,"value":317},": gradient title, borders, and layout",{"type":200,"tag":251,"props":319,"children":320},{},[321,326,327,331,333,338],{"type":200,"tag":223,"props":322,"children":323},{},[324],{"type":168,"value":325},"Glamour",{"type":168,"value":279},{"type":200,"tag":281,"props":328,"children":329},{},[330],{"type":168,"value":285},{"type":168,"value":332},": markdown rendering for the ",{"type":200,"tag":262,"props":334,"children":336},{"className":335},[],[337],{"type":168,"value":104},{"type":168,"value":339}," tab",{"type":200,"tag":251,"props":341,"children":342},{},[343,348,349,353],{"type":200,"tag":223,"props":344,"children":345},{},[346],{"type":168,"value":347},"CharmTone",{"type":168,"value":279},{"type":200,"tag":281,"props":350,"children":351},{},[352],{"type":168,"value":285},{"type":168,"value":354},": dark global background",{"type":200,"tag":251,"props":356,"children":357},{},[358,363,364,368,370,376],{"type":200,"tag":223,"props":359,"children":360},{},[361],{"type":168,"value":362},"Taskfile",{"type":168,"value":279},{"type":200,"tag":281,"props":365,"children":366},{},[367],{"type":168,"value":285},{"type":168,"value":369},": ",{"type":200,"tag":262,"props":371,"children":373},{"className":372},[],[374],{"type":168,"value":375},"go-task",{"type":168,"value":377}," tasks for build \u002F run \u002F test \u002F lint \u002F fmt \u002F tidy",{"type":200,"tag":240,"props":379,"children":381},{"id":380},"use-it",[382],{"type":168,"value":383},"Use it",{"type":200,"tag":385,"props":386,"children":392},"pre",{"className":387,"code":388,"language":389,"meta":390,"style":391},"language-sh","# from the official registry\nspin registry update\nspin new my-app official\u002Fcharm-tui\n\n# or directly from this repo\nspin new my-app https:\u002F\u002Fgithub.com\u002Fspin-templates\u002Fcharm-tui\n","sh","","undefined",[393],{"type":200,"tag":262,"props":394,"children":395},{"__ignoreMap":390},[396],{"type":168,"value":388},{"type":200,"tag":206,"props":398,"children":399},{},[400,405,407,413],{"type":200,"tag":262,"props":401,"children":403},{"className":402},[],[404],{"type":168,"value":110},{"type":168,"value":406}," prompts for each option (project name, description, module path, and which libraries to include); pass ",{"type":200,"tag":262,"props":408,"children":410},{"className":409},[],[411],{"type":168,"value":412},"--param use_bubbles=false",{"type":168,"value":414}," and friends to scaffold non-interactively. Omitting Bubbles removes the tabs and shows a plain welcome screen.",{"type":200,"tag":240,"props":416,"children":418},{"id":417},"keys",[419],{"type":168,"value":420},"Keys",{"type":200,"tag":422,"props":423,"children":424},"table",{},[425,444],{"type":200,"tag":426,"props":427,"children":428},"thead",{},[429],{"type":200,"tag":430,"props":431,"children":432},"tr",{},[433,439],{"type":200,"tag":434,"props":435,"children":436},"th",{},[437],{"type":168,"value":438},"Key",{"type":200,"tag":434,"props":440,"children":441},{},[442],{"type":168,"value":443},"Action",{"type":200,"tag":445,"props":446,"children":447},"tbody",{},[448,473,497],{"type":200,"tag":430,"props":449,"children":450},{},[451,468],{"type":200,"tag":452,"props":453,"children":454},"td",{},[455,461,462],{"type":200,"tag":262,"props":456,"children":458},{"className":457},[],[459],{"type":168,"value":460},"←",{"type":168,"value":295},{"type":200,"tag":262,"props":463,"children":465},{"className":464},[],[466],{"type":168,"value":467},"→",{"type":200,"tag":452,"props":469,"children":470},{},[471],{"type":168,"value":472},"Switch tab",{"type":200,"tag":430,"props":474,"children":475},{},[476,492],{"type":200,"tag":452,"props":477,"children":478},{},[479,485,486],{"type":200,"tag":262,"props":480,"children":482},{"className":481},[],[483],{"type":168,"value":484},"1",{"type":168,"value":279},{"type":200,"tag":262,"props":487,"children":489},{"className":488},[],[490],{"type":168,"value":491},"2",{"type":200,"tag":452,"props":493,"children":494},{},[495],{"type":168,"value":496},"Jump to a tab",{"type":200,"tag":430,"props":498,"children":499},{},[500,516],{"type":200,"tag":452,"props":501,"children":502},{},[503,509,510],{"type":200,"tag":262,"props":504,"children":506},{"className":505},[],[507],{"type":168,"value":508},"q",{"type":168,"value":295},{"type":200,"tag":262,"props":511,"children":513},{"className":512},[],[514],{"type":168,"value":515},"ctrl+c",{"type":200,"tag":452,"props":517,"children":518},{},[519],{"type":168,"value":520},"Quit",{"type":200,"tag":240,"props":522,"children":524},{"id":523},"run-build",[525],{"type":168,"value":526},"Run \u002F build",{"type":200,"tag":385,"props":528,"children":530},{"className":387,"code":529,"language":389,"meta":390,"style":391},"go run .\ngo build .\u002F...\ngo test .\u002F...\n\n# with the Taskfile option:\ntask run\ntask build   # outputs .\u002Fbin\u002F\u003Cname>\n",[531],{"type":200,"tag":262,"props":532,"children":533},{"__ignoreMap":390},[534],{"type":168,"value":529},{"type":200,"tag":206,"props":536,"children":537},{},[538,540],{"type":168,"value":539},"License ",{"type":200,"tag":212,"props":541,"children":543},{"href":542},".\u002FLICENSE",[544],{"type":168,"value":545},"MIT",{"type":200,"tag":547,"props":548,"children":549},"style",{},[550],{"type":168,"value":390},{"title":390,"searchDepth":552,"depth":552,"links":553},2,[554,555,556,557],{"id":242,"depth":552,"text":245},{"id":380,"depth":552,"text":383},{"id":417,"depth":552,"text":420},{"id":523,"depth":552,"text":526},1787755187489]