livewiki

io.github.eduardoabreu81由 GitHub 账号 eduardoabreu81 发布v0.3.4更新于 Oct 27, 2026

A repository wiki of Markdown pages anchored to real code: read, search, and verified writes.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

让编码助手读取、搜索并安全写入与代码锚定的仓库 Markdown wiki 的 MCP 服务器,每次写入都做结构化校验。

可以做什么
  • 读取并搜索仓库 wiki 中的 Markdown 页面
  • 领取待办的文档任务,提交新建或更新的页面
  • 写入的页面其代码引用须锚定到真实索引符号,不合格的写入会被拒绝并回滚
  • 保留人工所有的页面与手写区块,同时跟踪锚定符号的变动
适用场景
当你希望编码助手为仓库搭建或维护一套代码引用始终对应真实符号的 wiki,并在合并前发现虚构符号或失效锚点时使用。
运行要求
以本地 stdio 进程运行,通过 npx @livewiki/mcp 并传入 --repo 路径参数;需要 Node.js 24 或更高版本。仓库需先用 livewiki 命令行初始化。由所连接的助手撰写页面时无需 API 密钥;可选的无人值守批处理模式需要以环境变量提供模型服务商密钥,例如 ANTHROPIC_API_KEY 或 OPENAI_API_KEY。
安装前请注意
该服务器会向仓库写入文档文件,并可能回滚被拒绝的写入。可选的批处理模式会保存配置向导录入的服务商 API 密钥或读取环境变量中的密钥,可能产生模型调用费用。结构化校验并不验证文字内容是否属实,说明本身仍需人工审阅。

安装

在 SourceWeft 中

  1. 打开 控制台中的 livewiki,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

livewiki

Code-anchored documentation that knows when it is stale.

livewiki turns a repository into a Markdown wiki whose every code reference is anchored to a real indexed symbol. An LLM writes the prose; livewiki does the deterministic work — planning the pages, running structural anti-hallucination checks on what the model wrote, tracking which anchored symbols changed, and preserving your edits.

The wiki is exposed to any coding agent by @livewiki/mcp — an MCP (Model Context Protocol) server with eight tools for reading, searching, and safely writing the wiki.

[npm @livewiki/cli] [npm @livewiki/mcp] [CI] [License: MIT]

livewiki view builds a self-contained offline site from the wiki — grouped sidebar, offline search, diagrams, and dark mode:

[livewiki viewer showing a generated quickstart page]

Example wiki generated by livewiki for MoneyPrinterTurbo-Plus, an external Python repository.


Why

Technical docs go stale the moment the code changes. livewiki makes that visible and cheap to fix instead of silent:

  • Deterministic anti-hallucination checks. Every code reference must point at a real indexed symbol. livewiki verify reads the wiki fresh from disk and fails on invented symbols, broken anchors, and signatures that no longer match — including references the LLM wrote seconds ago, without running index first, and without spending a token. Structural, not semantic; the section below draws the line.
  • Your edits win. Pages you mark owner: human are never rewritten, and lw:manual blocks are preserved byte-for-byte.
  • Debt is tracked, not discovered. livewiki status ranks what drifted; a GitHub Action can gate every merge on zero documentation debt, without spending tokens.
  • Works where you already work. Bootstrap and maintain through the coding agent you use, or run a fully automated batch.

What verify checks — and what it doesn't

The anti-hallucination layer is deterministic and structural. livewiki verify reads the wiki fresh from disk — so a page an LLM wrote seconds ago is checked without running index first — and fails on:

  • a cited symbol that does not exist in the code;
  • an anchor that broke because the symbol moved, was renamed, or was deleted;
  • a cited signature that no longer matches the indexed one;
  • an internal link that does not resolve;
  • a referenced artifact that is missing from disk;
  • frontmatter or page structure that violates the format contract.

That removes whole classes of fabricated content — the invented function, the API that never existed, the reference that quietly rotted — before a reader ever sees it, at zero token cost. Anything that fails is rejected and rolled back rather than merged.

It does not prove that a sentence is true. A plausible but wrong explanation of code that really does exist passes every check above, because every check above is about structure and identity, not meaning. Read "anti-hallucination" here as a layer that mechanically eliminates a large class of fabrication and tells you the moment code moves under the prose — not as a guarantee of factual accuracy. Reviewing the explanation itself is still your job.

Quick start

Requires Node.js 24 or newer.

1. Install

bash
npm install -g @livewiki/cli

(npx @livewiki/cli works too, without installing globally.)

2. Initialize

From the root of the repository you want documented:

bash
livewiki init

Indexes the code and creates the wiki skeleton under livewiki/, plus a derived cache under .livewiki/ (added to .gitignore). Deterministic — no LLM call, no tokens.

3. Bootstrap the wiki once

You have two routes — pick one.

Route A — through your coding agent (no API key needed):

bash
livewiki install

The installer detects your agent, wires the MCP server, the document-as-you-go skill, and git hooks. Then ask the agent to bootstrap the wiki; it pulls tasks from livewiki_next_task and submits pages with livewiki_write_doc using the model it already has.

Route B — a configured LLM API (unattended):

bash
livewiki config

The wizard lists the providers, asks for your API key (typed without echo), and saves it. Bare livewiki on an unconfigured repo starts the same wizard. Then:

bash
livewiki init --batch

The resumable pipeline plans real page units and writes one page per source file and folder, plus flows, concept topics, diagrams, and an understanding.md synthesis. Interrupt it and resume with livewiki batch resume <runId>.

4. Verify and browse

bash
livewiki verify   # validate code references, internal links, and artifactslivewiki view     # build an offline site with search, Mermaid, and dark mode

Works with your coding agent

livewiki install auto-detects and wires 13 agents over MCP (with skills and hooks where the agent supports them):

Claude Code · Codex · Cursor · Kimi · Gemini CLI · OpenCode · OpenClaw · Cline · Kiro · Qwen · Warp · Zed · Hermes

Prefer manual wiring? Any stdio MCP client works:

json
{  "mcpServers": {    "livewiki": {      "command": "npx",      "args": ["-y", "@livewiki/mcp", "--repo", "/path/to/repo"]    }  }}

The server is also published to the official MCP Registry as io.github.eduardoabreu81/livewiki, so a client that resolves servers from the registry can find it by name instead of using the snippet above.

Languages

LanguageAnchored docs (symbols extracted)
TypeScript✅ .ts
JavaScript✅ .js .mjs .cjs
TSX / JSX✅ .tsx .jsx
Python✅ .py
Go✅ .go
Rust✅ .rs
Java✅ .java
Everything elseProse floor — every text file is walked and documented as prose, no symbols

Anchored pages cite real symbols; the prose floor still gives every file a place in the wiki. Tier-1 language support grows as the pattern is proven (Go, Rust, and Java each landed this way).

Providers

livewiki config lists these 17 presets. Each reads its own API-key environment variable; livewiki config show prints the one your preset expects without ever showing the value.

ProviderPresetEnv var
AnthropicanthropicANTHROPIC_API_KEY
OpenAIopenaiOPENAI_API_KEY
OpenRouteropenrouterOPENROUTER_API_KEY
DeepSeekdeepseekDEEPSEEK_API_KEY
Kimi (Moonshot)kimiMOONSHOT_API_KEY
MiniMaxminimaxMiniMax_API_KEY
Google GeminigeminiGEMINI_API_KEY
NVIDIAnvidiaNVIDIA_API_KEY
Ollama (local)ollamaOLLAMA_API_KEY (optional)
LM Studio (local)lmstudioLMSTUDIO_API_KEY (optional)
FireworksfireworksFIREWORKS_API_KEY
NovitanovitaNOVITA_API_KEY
GMIgmiGMI_API_KEY
StepFunstepfunSTEPFUN_API_KEY
Hugging FacehuggingfaceHF_TOKEN
xAIxaiXAI_API_KEY
Alibaba (DashScope)alibabaDASHSCOPE_API_KEY

ollama and lmstudio need no key for a local server. For CI and headless automation, set the env var directly — it takes precedence over the saved key.

What a generated page looks like

Excerpt from this repository's own livewiki/core-src/verify.md:

markdown
## Discovery: walking the wiki from disk
The verifier never trusts the index for which pages exist — a doc freshly written by an LLM must be caught without first running `index`. Two walkers enumerate the `livewiki/` directory from disk; both skip hidden directories but keep dot-prefixed files.
<!-- lw:anchors packages/core/src/verify.ts#collectWikiPages packages/core/src/verify.ts#collectWikiArtifactPaths -->
```tsasync function collectWikiPages(absRoot: string): Promise<{ relPath: string }[]>```

The prose explains the implementation; the lw:anchors marker ties the section to real indexed symbols, so staleness and invalid references are detected mechanically.

How it works

  • Deterministic layer — the CLI indexes source, extracts symbols, computes staleness, plans work, tracks debt, and verifies — without a model.
  • Writing layer — a connected agent (or an API-backed batch) writes the prose, from a closed list of allowed symbol keys.
  • Anti-hallucination layer — deterministic and structural: code anchors, cited signatures, internal links, artifacts, and page structure are all checked against disk; invalid writes are rolled back. It eliminates fabricated and rotted references, not semantic mistakes.
  • Human ownership — owner: human pages are never rewritten; lw:manual blocks are preserved byte-for-byte.
  • Portable baseline — the accepted state of every documentation obligation lives in a versioned livewiki/.baseline.json, so debt is enforced against a real baseline and the wiki survives a deleted local cache.

Documentation debt can gate every merge in CI, without LLM calls or tokens — see the GitHub Actions template.

Historical comparison methodology and dated results are archived in Benchmarks.

Packages

PackagePurpose
@livewiki/cliThe livewiki command
@livewiki/mcpMCP server for stdio-capable MCP clients
@livewiki/coreLibrary: indexer, anchors, ledger, pipeline

Documentation

License

MIT — see LICENSE.


来源:README.md,提交 6edf2f3

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.3.4最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分