OpenKB

Compile raw documents into a persistent, interlinked LLM wiki instead of re-deriving knowledge on every query.

Source repo
VectifyAI/OpenKB
Stars
★ 4.9k
Last updated
3mo ago
License
Apache-2.0
Primary language
Python

At a glance

How it runs
CLIWeb appSelf-hosted service
Works with
Universal · cross-platformCodex · Claude Code · OpenAI API · Claude APIChatGPT (Partial support)
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
Python (pip)LLM API key (or OAuth-based provider)Shell / CLINetwork accessLocal filesystem
Typical use
A researcher ingesting a dozen papers one at a time with openkb add, letting the LLM maintain concept and entity pages so questions do not require re-reading source PDFs.
Not a fit if
  • Teams wanting human review or to keep manual edits: recompile overwrites them
  • Users needing non-PDF long documents or very large collections: still on the roadmap
Source review
69/100 · Some gaps

What does this agent do, and when should you use it?

OpenKB is a CLI, open-source system from VectifyAI that compiles raw documents into a structured, interlinked wiki-style knowledge base using LLMs, with retrieval powered by PageIndex's vectorless, reasoning-based tree index for long documents. It splits into a wiki foundation layer (openkb init/add/list/status/watch/lint/remove/recompile) that compiles and maintains knowledge, and a generator layer (query, chat, visualize, skill new, deck new) that turns the wiki into outputs. Short documents go through markitdown into Markdown and are read in full; PDFs of 20 pages or more are turned by PageIndex into a hierarchical tree index that the LLM reasons over, with figures, tables and images handled natively. The result is a plain-.md wiki/ directory that opens directly in Obsidian, plus a bundled FastAPI service and Knowledge Workbench web UI for browsing, uploading, and streaming queries.

openkb init writes .openkb/config.yaml and scaffolds the wiki; openkb add accepts files, directories, or URLs, converting short inputs via markitdown and long PDFs via PageIndex tree indexing, then the LLM generates a summary page, reads existing concept and entity pages, performs cross-document synthesis, creates or updates concepts and entities (people, orgs, places, products), and updates the index and log. openkb query returns a grounded, cited answer and can --save into wiki/explorations/; openkb chat runs multi-turn sessions with --resume/--list/--delete management and slash commands such as /add, /skill, /deck, /lint, /save. openkb skill new distills a redistributable agent skill (with validate, eval, history, rollback) installable by Claude Code, Codex, and Gemini CLI. openkb visualize emits a self-contained 3D/mind-map/radial knowledge graph HTML; openkb deck new produces a single-file HTML slide deck with an optional --critique quality pass. Models are reached through LiteLLM using provider/model strings in config.yaml, with keys in .env as LLM_API_KEY.

  1. A researcher ingesting a dozen papers one at a time with openkb add, letting the LLM maintain concept and entity pages so questions do not require re-reading source PDFs.
  2. An analyst tracking a field long-term who leaves openkb watch running on raw/ so newly dropped PDFs compile automatically.
  3. Someone with an existing Obsidian vault who opens the generated wiki/ directly to browse concept links and the graph view.
  4. An engineer distributing team knowledge as an installable read-only skill for Claude Code, Codex, or Gemini CLI via openkb skill new.
  5. Teams with scanned or very large PDFs who set PAGEINDEX_API_KEY to enable PageIndex Cloud OCR and faster structure generation.
  6. Developers who need to query the knowledge base from their own app, installing openkb[web] and starting openkb-web to use the FastAPI service and its /docs reference.

How do you install or deploy this agent?

Requires Python and pip. Base install: pip install openkb. Alternatives: pip install git+https://github.com/VectifyAI/OpenKB.git for the latest GitHub code, or git clone followed by pip install -e . for an editable development install. The web UI and REST API need an extra: pip install "openkb[web]". Put your model credential in a .env file as LLM_API_KEY=your_llm_api_key; OAuth device-flow subscription providers such as chatgpt/* and github_copilot/* need no API key. To enable PageIndex Cloud (OCR for scanned PDFs, faster structure generation), add PAGEINDEX_API_KEY to the same .env.

How do you use this agent?

Create a working directory (mkdir my-kb && cd my-kb) and run openkb init, choosing a model such as anthropic/claude-sonnet-4-6 or gpt-5.4. Ingest content with openkb add paper.pdf, openkb add ~/papers/, or openkb add https://arxiv.org/pdf/2509.11420. Ask a single question with openkb query "What are the main findings?" or start an interactive session with openkb chat (type / inside chat for slash commands). For outputs, run openkb skill new my-expert "Reason like an expert on <your-topic>", openkb visualize, or openkb deck new my-deck "An intro deck on <your-topic>". For the browser experience: pip install "openkb[web]" then openkb-web, and open http://127.0.0.1:7566/ for the Knowledge Workbench; auth is off by default, so set OPENKB_API_TOKEN before exposing it. Frontend work uses cd frontend && npm install && npm run dev.

What are this agent's strengths and limitations?

Pros
  • Knowledge lands as plain .md files with [[wikilinks]] under wiki/, so Obsidian opens it as a vault and there is no proprietary storage format to escape.
  • Long-document retrieval uses PageIndex tree indexing rather than a vector DB; the LLM reasons over the index, and scanned PDFs can optionally be handled by PageIndex Cloud OCR.
  • Model access is abstracted through LiteLLM, with OpenAI, Claude, Gemini, and OAuth subscription providers such as chatgpt/* and github_copilot/* documented, so switching is mostly a config.yaml provider/model edit.
  • Generators sit on top of a stable wiki layer: the same compiled knowledge feeds cited answers, multi-turn chat, an interactive graph, distributable agent skills, and HTML slide decks.
Limitations
  • Every core step depends on LLM calls, so ingestion, querying, and skill distillation consume model budget with no published cost estimate or offline fallback.
  • Long-PDF accuracy is tied to PageIndex, so query citation quality tracks index quality, and scanned documents need the cloud option for OCR in practice.
  • LLM compilation rewrites concept pages, and recompile overwrites manual edits; the README warns about this with --dry-run but there is no built-in versioning or human review gate.
  • wiki/AGENTS.md is the LLM's instruction manual for maintaining the wiki, so changing structural conventions requires understanding that file.
  • The roadmap still lists non-PDF long documents, nested folders, hierarchical concept indexing, and a database-backed storage engine as unfinished, which limits very large collections today.

How does this agent compare with similar options?

Karpathy's documented workflow: short documents are read by the LLM directly, long documents hit context limits and context rot, input arrives via a web clipper into .md, and entity extraction is manual. OpenKB normalizes short inputs through markitdown, handles long ones with PageIndex tree indexing, accepts PDF, Word, PPT, Excel, HTML, text, CSV, Markdown, and URLs, auto-extracts entities (people, orgs, places, products), and adds Skill Factory plus agent CLI integration on top of the wiki.

Traditional RAG: the README argues traditional RAG rediscovers knowledge from scratch on every query and accumulates nothing, whereas OpenKB compiles knowledge once into a persistent wiki where cross-references already exist and contradictions are flagged.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
OpenKB This agent 69 · Some gaps CLIFree + model costs ★ 4.9k 3mo ago Python Codex · Claude Code · OpenAI API · Claude API
DeepTutor: Lifelong Personalized Tutoring 68 · Some gaps CLIFree + model costs ★ 57k 1d ago Python Codex · Claude Code · OpenAI API · Claude API
SwarmVault 75 · Good CLIFree + model costs ★ 733 4mo ago TypeScript Codex · Claude Code
LLM Wiki 74 · Some gaps Agent plugin / skillFree + model costs ★ 1.5k 14d ago Python Codex · Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Some gaps
69/ 100 5-point scale 3.5 / 5
Trust 16/29
Reliability 8/14
Adaptability 14/18
Convention 14/18
Effectiveness 12/13
Verifiability 5/8
Why each dimension lost points
Trust16 / 29 · 2.8/5

The skill explicitly treats wiki content as untrusted data, restricts read paths, and says not to execute write commands without user request; tool tests also show path-escape denial. The CLI reads keys from environment variables, and the README says API auth is off by default and recommends a token before exposure. Write boundaries are described, but compilation, deletion, and web uploads can have substantial effects; the supplied excerpts do not establish confirmation behavior for every operation, so full marks are not justified.

Reliability8 / 14 · 2.9/5

Dependency versions are constrained, and CI configuration covers linting, type checking, tests, and frontend builds. The packet also describes locking, staged publication, and rollback mechanisms. Configuration descriptions are not fully consistent across the README, fixtures, and code excerpt, and only limited error-message examples are shown, so these criteria lose points.

Adaptability14 / 18 · 3.9/5

The README covers concrete document ingestion, long-document retrieval, Q&A, chat, skill, and deck scenarios, with format, provider, and local/cloud PageIndex choices. Skills state their intended use and exclusions and target multiple agent CLIs. Environment constraints and capability boundaries are distributed across guides rather than collected in a complete compatibility matrix.

Convention14 / 18 · 3.9/5

The README is organized around installation, quick start, architecture, commands, configuration, and integrations, with example directories and a configuration reference. Apache-2.0 is stated and included; VCS tags supply versions, and CI and publishing steps are documented. The roadmap identifies unfinished areas, but the sample does not include a full changelog or a clear maintenance-responsibility commitment; repository or author metadata alone does not establish responsibility.

Effectiveness12 / 13 · 4.6/5

The product compiles documents into a linked, maintainable Markdown knowledge base and offers usable outputs including cited queries, chat, graphs, skills, and decks. Its intended value is clear. LLM use can incur API costs and generated content needs judgment; the packet gives no representative cost or quality benchmarks, so cost-benefit evidence is partial.

Verifiability5 / 8 · 3.1/5

README command and architecture claims receive partial support from the CLI, dependency metadata, skills, and test examples; tests contain readable behavioral assertions, but this static review does not claim to have run them. Some capabilities are corroborated across source types while others appear only as README claims. The text generally distinguishes features from roadmap items, but incomplete coverage warrants conservative scores.

Risks and how to mitigate them
  • API authentication is off by default; configure OPENKB_API_TOKEN before exposing the service.
  • Before processing sensitive documents, review the selected LLM provider's data handling. The packet shows documents are compiled or queried through an LLM but does not detail retention policies.
  • The README says recompile overwrites manual edits and remove cleans related pages; use dry-run and back up important material first.
Evidence confidence: Low Reviewed Nov 08, 2026 Reviewed revision ff54396e575e
See the full review method →
Maintain this project? Add the FARS badge to your README

The badge shows the current review score and verdict and links back to this page. It refreshes about once an hour after a re-review.

FARS

[![FARS review](https://followagents.com/badge/openkb.svg)](https://followagents.com/en/agents/openkb)
<a href="https://followagents.com/en/agents/openkb"><img src="https://followagents.com/badge/openkb.svg" alt="FARS review"></a>

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.4.5
    Release notes excerpt
    Hotfix to avoid openai InputTokensDetails breaking change. What's Changed fix(deps): pin openai==2.44.0 to avoid InputTokensDetails breaking change by @KylinMountain in https://github.com/VectifyAI/OpenKB/pull/191 Full Changelog: https://github.com/VectifyAI/OpenKB/compare/v0.4.4...v0.4.5
    View on GitHub ↗
  2. v0.4.4
    Release notes excerpt
    What's Changed * fix(converter): move keep_data_uris to convert call and fix lint by @RussellLuo in https://github.com/VectifyAI/OpenKB/pull/165 * feat(mutation): route serial add mutations through coordinator by @gwokhou in https://github.com/VectifyAI/OpenKB/pull/156 * fix(agent): make parallel_tool_calls configurable to fix Amazon Bedrock query/chat (#175) by @KylinMountain in https://github.com/VectifyAI/OpenKB/pull/177 * feat: upgrade pageindex sdk and compile concurrency configurable by @KylinMountain in https://github.com/VectifyAI/OpenKB/pull/174 …
    View on GitHub ↗
  3. v0.4.3
    Release notes excerpt
    What's Changed * fix(lint): don't hide same-stem orphans behind qualified links by @jichaowang02-lang in https://github.com/VectifyAI/OpenKB/pull/147 * fix(compiler): strip cache_control for non-Anthropic providers by @Aldominguez12 in https://github.com/VectifyAI/OpenKB/pull/154 * feat: add serial crash-safe mutation recovery by @gwokhou in https://github.com/VectifyAI/OpenKB/pull/142 * perf(mutation): don't snapshot the whole blob store on every add by @KylinMountain in https://github.com/VectifyAI/OpenKB/pull/155 …
    View on GitHub ↗

FAQ

Does it need a vector database?
No. Retrieval runs on PageIndex's hierarchical tree index, letting the LLM reason over the index without embeddings; short documents are converted to Markdown by markitdown and read in full.
Which models can it use and what credentials are required?
Through LiteLLM it supports OpenAI, Claude, Gemini, and other providers, configured via the provider/model field in .openkb/config.yaml. The API key goes in .env as LLM_API_KEY; OAuth device-flow providers such as chatgpt/* and github_copilot/* need none, and OpenKB skips the missing-key warning for them.
I edited wiki pages by hand — will recompiling overwrite them?
Yes. openkb recompile rewrites concept pages and overwrites manual edits, so use --dry-run to preview first; --refresh-schema also updates wiki/AGENTS.md.
What if long PDFs are handled poorly?
Local indexing uses the open-source PageIndex with no external dependencies. For large, complex, or scanned PDFs, set PAGEINDEX_API_KEY in .env to enable PageIndex Cloud OCR, faster structure generation, and scalable indexing.
Are the generated skills and web UI safe to share?
openkb skill new produces installable agent skills for Claude Code's /plugin marketplace, a manual Codex symlink, or gemini skills install. The web server is local-first with auth off by default; set OPENKB_API_TOKEN to require a bearer token before exposing it.
Was this page helpful?
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.