llm-wiki-sidebar
界面增强 活跃维护

llm-wiki-sidebar

ApeInCodeMountain/llm-wiki-sidebar

LLM Wiki workbench for dsh-better-sidebar: browse and lint a Karpathy-style interlinked markdown wiki, open pages with the native markdown viewer, clickable [[wikilinks]] and provenance/relative .md links, and backlinks. Ships the llm-wiki agent skill.

1
Stars 标星
0
Forks 分支
1
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
60 KB
仓库大小
16 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:ApeInCodeMountain/llm-wiki-sidebar
git clone https://github.com/ApeInCodeMountain/llm-wiki-sidebar.git
git clone git@github.com:ApeInCodeMountain/llm-wiki-sidebar.git
README.md main

llm-wiki-sidebar

English | 简体中文

License: MIT
DSH
dsh-better-sidebar

LLM Wiki workbench for
dsh-better-sidebar: browse and lint a
Karpathy-style interlinked markdown wiki directly in the DSH sidebar, with full-fidelity page
preview/editing, clickable [[wikilinks]] and provenance links, backlinks, and the llm-wiki
agent skill that drives ingest/query/maintenance — packaged as one DSH plugin.

Features

  • 📚 LLM Wiki sidebar tab — sectioned page catalog (entities / concepts / comparisons /
    queries), search by slug/title/tag, quality markers (conf: low, contested), one-click open
    via betterSidebar.openFile, and a refresh button that re-reads the wiki from disk.
  • Native markdown viewer — wiki pages render through dsh-better-sidebar's built-in markdown
    viewer (Mermaid, shiki, KaTeX, TOC, embedded HTML) with the stock preview/edit toolbar and
    Ctrl/Cmd+S save. Nothing about the native viewer is replaced; the plugin only decorates its
    output.
  • Clickable [[wikilinks]] — preview-mode DOM decoration resolves [[target]] /
    [[target|label]] against the wiki map and jumps via openFile (page text is never modified,
    so editing/saving stays safe). Unresolvable links render struck-through with a tooltip.
  • Clickable provenance & relative .md links — provenance markers (^([来源](https://github.com/ApeInCodeMountain/llm-wiki-sidebar/blob/main/raw/...))) and
    any in-site relative markdown link are clickable in the preview and open through the same
    openFile path as the catalog. The shared markdown renderer drops relative link destinations,
    so the plugin pairs source-parsed links with their rendered label text instead — fp.content
    is never rewritten, keeping edit-mode saves byte-identical.
  • Backlinks — "🔗 Linked here (N)" bar under each wiki page.
  • Lint report — the full 12 checks (broken links, orphans, index completeness, frontmatter
    validation, stale pages, contested, quality signals, sha256 source drift, page size, tag
    taxonomy, log rotation) grouped by severity; error+warn count shows as a tab badge. The same
    checks are available on the CLI via the packaged scripts/wiki_lint.py.
  • Ships the llm-wiki skillskills/llm-wiki/SKILL.md + scripts/wiki_lint.py are
    mounted by a dedicated dsh-skill-filesystem instance scoped to this package, so the plugin
    and its skill install and uninstall as one unit.

Requirements

Install

The wiki lives at <session workspace>/wiki (the sidebar file routes enforce the workspace
fence, so workspace-relative is the supported location).

From GitHub (official bundle CLI)

dsh plugin --profile web add "github:ApeInCodeMountain/llm-wiki-sidebar"

Then restart dsh --profile web and hard-refresh the browser.

From npm

dsh plugin --profile web add llm-wiki-sidebar

Local development install

git clone https://github.com/ApeInCodeMountain/llm-wiki-sidebar
cp -r llm-wiki-sidebar ~/.dsh/profiles/web/
ln -sfn ../llm-wiki-sidebar ~/.dsh/profiles/web/node_modules/llm-wiki-sidebar
# register as a link: dependency so pnpm keeps the symlink
node -e "const fs=require('fs');const f=process.env.HOME+'/.dsh/profiles/web/package.json';const j=JSON.parse(fs.readFileSync(f));j.dependencies['llm-wiki-sidebar']='link:llm-wiki-sidebar';fs.writeFileSync(f,JSON.stringify(j,null,2)+'\n')"

Then restart dsh --profile web and hard-refresh the browser (Cmd/Ctrl+Shift+R).

Uninstall

Remove the package via dsh plugin --profile web remove llm-wiki-sidebar (or delete both rows
from ~/.dsh/profiles/web/cordis.patch.yml, the profile package.json entry, the
node_modules/llm-wiki-sidebar symlink and the ~/.dsh/profiles/web/llm-wiki-sidebar
directory); restart DSH. Uninstalling also withdraws the packaged llm-wiki skill (it lives
inside the plugin directory).

Usage

  1. Tell the agent: “帮我在这个工作区初始化一个 wiki” (or "create a wiki here") — the packaged
    llm-wiki skill creates wiki/ with SCHEMA.md, index.md, log.md and the layered
    directories, then ingests sources.
  2. Open the 📚 LLM Wiki tab in the sidebar: the catalog, search, and the Lint button.
  3. Open any page for the native preview — [[wikilinks]], provenance links and backlinks are
    clickable; editing in the sidebar writes the file directly (bump updated).

Routes (host half)

Route Body Purpose
POST /llm-wiki/api/scan { cwd } wiki page catalog
POST /llm-wiki/api/lint { cwd } lint report
POST /llm-wiki/api/map { cwd } slug→page map + backlink graph + raw index

All routes enforce the same browser-trust fence as the /api gateway
(loopback/trusted Host + same-origin markers) and read only through the
sandbox-aware fs service. The plugin never writes to disk.

Development

node --check lib/client.js && node --check lib/index.js   # syntax
node test/impl.test.mjs                                   # unit + regression (no DOM required)

The design notes for the clickable-link pipeline (why it pairs source links with rendered
label text instead of intercepting anchors) live in
docs/design-source-link-navigation-v2.md.

License

MIT

Acknowledgments

  • Karpathy's LLM Wiki pattern
    and the MIT-licensed llm-wiki skill from the hermes-agent project — the packaged
    skills/llm-wiki skill is a DSH edition of that pattern.
  • DeepSeek Harness (MIT) — the host
    runtime; the browser-trust fence in lib/index.js is a behavioral port of the
    /api gateway's fence from @deepseek-ai/dsh-client-connection (MIT).
  • dsh-better-sidebar (MIT) — the sidebar
    workbench this plugin extends, and the provider of the betterSidebar service.