[{"data":1,"prerenderedAt":195},["ShallowReactive",2],{"page:\u002Farticles\u002Fintroducing-llm-wiki-viewer":3},{"id":4,"title":5,"author":6,"body":10,"cover":181,"date":182,"description":183,"extension":184,"head":185,"layout":188,"meta":189,"navigation":190,"path":191,"seo":192,"stem":193,"__hash__":194},"pages\u002Farticles\u002F15.introducing-llm-wiki-viewer.md","Introducing LLM Wiki Viewer",{"name":7,"avatarUrl":8,"link":9},"Likun Cai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F103620968?v=4","https:\u002F\u002Fgithub.com\u002FAlchemist-Aloha",{"type":11,"value":12,"toc":178},"minimark",[13,17,34,55,60,139,154,165,174],[14,15,5],"h1",{"id":16},"introducing-llm-wiki-viewer",[18,19,20,21,28,29,33],"p",{},"LLM Wiki Viewer is a read-only web interface for the structured ",[22,23,27],"a",{"href":24,"rel":25},"https:\u002F\u002Fgist.github.com\u002Fkarpathy\u002F442a6bf555914893e9891c11519de94f",[26],"nofollow","llm-wiki"," layer inside an Obsidian vault. It lists notes with their title, type, tags, excerpt, and update time, renders Markdown, follows ",[30,31,32],"code",{},"[[wikilinks]]",", and provides client-side search.",[18,35,36,37,40,41,40,44,40,47,50,51,54],{},"A filter narrows the library to wiki-managed directories such as ",[30,38,39],{},"entities",", ",[30,42,43],{},"concepts",[30,45,46],{},"comparisons",[30,48,49],{},"queries",", and ",[30,52,53],{},"raw",". The Vue 3 frontend and Fastify backend ship in one image, and the vault is always mounted read-only.",[56,57,59],"h2",{"id":58},"run-the-container","Run the container",[61,62,67],"pre",{"className":63,"code":64,"language":65,"meta":66,"style":66},"language-bash shiki shiki-themes github-light github-dark","docker run -d \\\n  --name llm-wiki-viewer \\\n  --restart unless-stopped \\\n  -p 12123:8080 \\\n  -v \u002Fabsolute\u002Fpath\u002Fto\u002Fyour\u002Fobsidian-vault:\u002Fdata\u002Fvault:ro \\\n  ghcr.io\u002Falchemist-aloha\u002Fllm-wiki-viewer:latest\n","bash","",[30,68,69,89,100,111,122,133],{"__ignoreMap":66},[70,71,74,78,82,86],"span",{"class":72,"line":73},"line",1,[70,75,77],{"class":76},"sScJk","docker",[70,79,81],{"class":80},"sZZnC"," run",[70,83,85],{"class":84},"sj4cs"," -d",[70,87,88],{"class":84}," \\\n",[70,90,92,95,98],{"class":72,"line":91},2,[70,93,94],{"class":84},"  --name",[70,96,97],{"class":80}," llm-wiki-viewer",[70,99,88],{"class":84},[70,101,103,106,109],{"class":72,"line":102},3,[70,104,105],{"class":84},"  --restart",[70,107,108],{"class":80}," unless-stopped",[70,110,88],{"class":84},[70,112,114,117,120],{"class":72,"line":113},4,[70,115,116],{"class":84},"  -p",[70,118,119],{"class":80}," 12123:8080",[70,121,88],{"class":84},[70,123,125,128,131],{"class":72,"line":124},5,[70,126,127],{"class":84},"  -v",[70,129,130],{"class":80}," \u002Fabsolute\u002Fpath\u002Fto\u002Fyour\u002Fobsidian-vault:\u002Fdata\u002Fvault:ro",[70,132,88],{"class":84},[70,134,136],{"class":72,"line":135},6,[70,137,138],{"class":80},"  ghcr.io\u002Falchemist-aloha\u002Fllm-wiki-viewer:latest\n",[18,140,141,142,145,146,149,150,153],{},"Open ",[30,143,144],{},"http:\u002F\u002Flocalhost:12123",". Change the first port in ",[30,147,148],{},"12123:8080"," if the host port is already used, but keep the ",[30,151,152],{},":ro"," mount flag so browsing cannot rewrite the vault.",[18,155,156,157,160,161,164],{},"The backend also exposes a small API: ",[30,158,159],{},"GET \u002Fapi\u002Fpages"," returns the list with frontmatter and excerpts, while ",[30,162,163],{},"GET \u002Fapi\u002Fpage\u002F\u003Cslug>"," returns a full page. The list response is cached for 30 seconds.",[18,166,167,168,173],{},"Visit the ",[22,169,172],{"href":170,"rel":171},"https:\u002F\u002Fgithub.com\u002FAlchemist-Aloha\u002Fllm-wiki-viewer",[26],"LLM Wiki Viewer repository"," for screenshots, source builds, and the current container image.",[175,176,177],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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":66,"searchDepth":91,"depth":91,"links":179},[180],{"id":58,"depth":91,"text":59},"\u002Farticles\u002Fllm-wiki-viewer-cover.webp","2026-08-12T00:15:00.000Z","Serve the llm-wiki layer of an Obsidian vault as a searchable, read-only website from one Docker container.","md",{"title":186},{"Introducing LLM Wiki Viewer":187},"A Read-Only Window into Obsidian","page",{},true,"\u002Farticles\u002Fintroducing-llm-wiki-viewer",{"title":5,"description":183},"articles\u002F15.introducing-llm-wiki-viewer","ca-H6n7aijvlAcUjmk7hL72F6Y0tPpnH99P3Cee4M04",1786980373683]