OpenKB: LLM-Compiled Wiki Knowledge Base

OpenKB

OpenKB is an open-source Python CLI by VectifyAI that compiles a folder of raw markdown into an LLM-synthesized wiki. Each source document gets a summary page; cross-cutting themes get auto-generated concept pages; queries can be saved as exploration artifacts; and the resulting graph can be linted for orphans, contradictions, and gaps. It is bring-your-own-LLM — any OpenRouter-compatible model, including free open-weight options.

Architecture & concepts

Directory taxonomy

OpenKB enforces a strict split between source-derived and synthesized content:

Folder Purpose
raw/ Original markdown documents (input)
wiki/sources/ Source registry / metadata
wiki/summaries/ One LLM-generated page per source document
wiki/concepts/ Cross-document synthesis pages (auto-discovered themes)
wiki/explorations/ Saved query results, treated as first-class artifacts
wiki/reports/ Lint output, health checks
wiki/AGENTS.md Per-wiki schema/conventions doc
wiki/index.md KB overview
wiki/log.md Operations timeline

Compile workflow

  1. openkb add <doc.md> — the LLM reads the document, writes a summary page, and updates or creates concept pages where the doc relates to existing themes. Cross-references emerge as Wikilinks.
  2. openkb list / openkb status — inspect indexed content.
  3. openkb query "..." — natural-language Q&A against the synthesized wiki.
  4. openkb query "..." --save — persist the answer as an explorations/ page.
  5. openkb lint — health check across the wiki, output to reports/.
  6. Adding a new doc later updates only the affected concept pages (incremental, not a full rebuild).

Lint checks

The lint command flags:

  • Orphans — pages with no inbound or outbound Wikilinks.
  • Contradictions — claims across pages that disagree.
  • Gaps — concept pages referenced but not yet written.
  • Stale linksWikilinks whose target was renamed or removed.

Programmatic graph analysis

Because OpenKB exposes the wiki as plain markdown, a small Python script can compute:

  • Inbound link counts per page (hub identification)
  • Cross-reference adjacency (which pages link to which)
  • Page-size distribution and link density

Where it fits

OpenKB is best understood as a local research wiki compiler — a lightweight way to turn a markdown corpus into a navigable, synthesized knowledge base. Several of its design choices are instructive on their own:

  • Lint as a health check — treating orphans, contradictions, and gaps as first-class signals keeps a growing wiki coherent.
  • Explorations as artifacts — a persistent record of synthesis questions already asked avoids re-running them and lets research compound.
  • Strict source/summary/concept/exploration split — keeps source-derived and synthesized pages from bleeding together.
  • Per-wiki conventions file — a single AGENTS.md reduces drift as content is added in batches.

Limitations

  • No publishing pipeline — output is local markdown only; there is no path to a CMS or website.
  • No schema enforcement — frontmatter is freeform, with no standardized fields.
  • Lint heuristics are LLM-judged — quality varies with the strength of the chosen model.
  • One wiki per directory — no multi-corpus or hierarchical concept.
  • No verification layer — factual claims are not checked against external sources.

Pricing

  • Tool itself: Free, open source, MIT license.
  • LLM costs: Bring your own OpenRouter (or compatible) API key. Works with free models like meta-llama/llama-3.3-70b-instruct:free for zero-cost experimentation.

Expert notes

OpenKB’s highest-value idea is the lint command — even a minimum-viable orphan-and-missing-link check pays off quickly on any actively growing markdown wiki. The explorations/ pattern is a close second: a synthesis-question audit trail compounds in value over time. It is best treated as a design reference and a self-contained local tool rather than a component to embed in a larger publishing stack, since it stops at the local wiki layer.

Direct link: https://github.com/VectifyAI/OpenKB

This entry was posted in . Bookmark the permalink.