Skip to content

Commit f9a2a3a

Browse files
committed
update readme
1 parent cbec7f4 commit f9a2a3a

1 file changed

Lines changed: 37 additions & 17 deletions

File tree

β€ŽREADME.mdβ€Ž

Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,16 @@ Traditional RAG rediscovers knowledge from scratch on every query. Nothing accum
2424

2525
OpenKB has two layers: a **wiki foundation** that compiles and maintains your knowledge, and **generators** (query / chat / Skill Factory) that turn it into useful output. See [Usage](#️-usage) for the full command list.
2626

27+
### Features
28+
29+
- **Broad format support** β€” PDF, Word, Markdown, PowerPoint, HTML, Excel, CSV, text, URLs, and more
30+
- **Scale to long documents** β€” Long and complex documents are handled via [PageIndex](https://github.com/VectifyAI/PageIndex) tree indexing, enabling accurate, vectorless context-aware retrieval
31+
- **Native multi-modality** β€” Retrieves and understands figures, tables, and images, not just text
32+
- **Compiled Wiki** β€” LLM compiles your documents into summaries, concept pages, entity pages, and cross-links, all kept in sync
33+
- **Query & Chat** β€” One-off questions or multi-turn conversations over your wiki, with persisted sessions you can resume
34+
- **Skill Factory** β€” Distill redistributable agent skills from your wiki
35+
- **Obsidian compatible** β€” Wiki is plain `.md` files with `[[wikilinks]]`. Open in Obsidian for graph view and browsing
36+
2737
# πŸš€ Getting Started
2838

2939
### Install
@@ -71,8 +81,8 @@ openkb query "What are the main findings?"
7181
# 5. Or chat interactively
7282
openkb chat
7383

74-
# 6. Or distill your wiki into a redistributable skill
75-
openkb skill new my-expert "Reason like an expert on <topic-from-your-docs>"
84+
# (Optional) Distill a redistributable agent skill from your wiki
85+
openkb skill new my-expert "Reason like an expert on <your-topic>"
7686
```
7787

7888
### Set up your LLM
@@ -108,17 +118,16 @@ wiki/ β”‚ ← the foundation
108118
β”œβ”€β”€ AGENTS.md Wiki schema (LLM instructions)
109119
β”œβ”€β”€ sources/ Full-text conversions
110120
β”œβ”€β”€ summaries/ Per-document summaries
111-
β”œβ”€β”€ concepts/ Cross-document synthesis ← the good stuff
121+
β”œβ”€β”€ concepts/ Cross-document synthesis
112122
β”œβ”€β”€ entities/ Specific named things (people, orgs, places, products)
113123
β”œβ”€β”€ explorations/ Saved query results
114124
└── reports/ Lint reports
115125
β”‚
116126
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
117127
β–Ό β–Ό β–Ό
118128
query / chat Skill Factory (future)
119-
(LLM answers from openkb skill new ppt / podcast /
120-
the wiki) β†’ output/skills/ report / …
121-
+ marketplace.json
129+
(LLM answers from (redistributable ppt / podcast /
130+
the wiki) agent skills) report / …
122131
```
123132

124133
### Short vs. Long Document Handling
@@ -155,7 +164,7 @@ OpenKB commands fall into two layers: the **wiki foundation** (compile + manage
155164
| `openkb init` | Initialize a new knowledge base (interactive) |
156165
| <code>openkb&nbsp;add&nbsp;&lt;file_or_dir_or_URL&gt;</code> | Add documents and compile to wiki. URL ingest auto-detects PDF (saved as `.pdf` β†’ PageIndex / markitdown) vs HTML (trafilatura main-content extract β†’ `.md`) |
157166
| <code>openkb&nbsp;remove&nbsp;&lt;doc&gt;</code> | Remove a document and clean up its wiki pages, images, registry, and PageIndex state (use `--dry-run` to preview, `--keep-raw` / `--keep-empty` to retain artifacts) |
158-
| <code>openkb&nbsp;recompile&nbsp;[&lt;doc&gt;]&nbsp;[--all]</code> | Re-run the current compile pipeline on already-indexed docs (e.g. to backfill the `entities/` layer) without re-indexing. Regenerates summaries and rewrites concept pages β€” manual edits are overwritten. Use `--dry-run` to preview, `--refresh-schema` to also update `wiki/AGENTS.md` |
167+
| <code>openkb&nbsp;recompile&nbsp;[&lt;doc&gt;]&nbsp;[--all]</code> | Re-run the current compile pipeline on already-indexed docs (e.g. to backfill the `entities/` layer) without re-indexing. Regenerates summaries and rewrites concept pages; manual edits are overwritten. Use `--dry-run` to preview, `--refresh-schema` to also update `wiki/AGENTS.md` |
159168
| `openkb watch` | Watch `raw/` and auto-compile new files |
160169
| `openkb lint` | Run structural + knowledge health checks |
161170
| `openkb list` | List indexed documents and concepts |
@@ -174,8 +183,8 @@ A "generator" reads from the compiled wiki and produces something usable: an ans
174183
| `openkb chat` | Interactive multi-turn session over the wiki (use `--resume`, `--list`, `--delete` to manage sessions) |
175184
| <code>openkb&nbsp;skill&nbsp;new&nbsp;&lt;name&gt;&nbsp;"&lt;intent&gt;"</code> | A redistributable Anthropic Skill at `<kb>/output/skills/<name>/` + auto-updated `marketplace.json` |
176185
| <code>openkb&nbsp;skill&nbsp;validate&nbsp;[name]</code> | Structural lint of compiled skills (frontmatter, file sizes, wikilinks, scripts/ stdlib check with `--strict`). Auto-runs at end of `skill new` |
177-
| <code>openkb&nbsp;skill&nbsp;eval&nbsp;&lt;name&gt;</code> | Trigger-accuracy evaluation β€” does the `description:` field actually fire? LLM generates eval prompts; grader LLM scores activation. `--save` persists the eval set |
178-
| <code>openkb&nbsp;skill&nbsp;history&nbsp;&lt;name&gt;</code> / <code>openkb&nbsp;skill&nbsp;rollback&nbsp;&lt;name&gt;</code> | Iteration workspace β€” every overwrite saves the previous version to `output/skills/<name>-workspace/iteration-N/` with a structural diff. Rollback restores any iteration |
186+
| <code>openkb&nbsp;skill&nbsp;eval&nbsp;&lt;name&gt;</code> | Trigger-accuracy evaluation: does the `description:` field actually fire? LLM generates eval prompts; grader LLM scores activation. `--save` persists the eval set |
187+
| <code>openkb&nbsp;skill&nbsp;history&nbsp;&lt;name&gt;</code> / <code>openkb&nbsp;skill&nbsp;rollback&nbsp;&lt;name&gt;</code> | Iteration workspace: every overwrite saves the previous version to `output/skills/<name>-workspace/iteration-N/` with a structural diff. Rollback restores any iteration |
179188

180189
### Query & Chat β€” ask the wiki
181190

@@ -205,7 +214,7 @@ Inside a chat, type `/` to access slash commands (Tab to complete):
205214

206215
### πŸ›  Skill Factory β€” *Drop in a book. Out comes a digital expert.*
207216

208-
The newest generator. `openkb skill new` distills any subset of your wiki into an [Anthropic Skill](https://docs.claude.com/en/docs/build-with-claude/skills) β€” a portable folder that **Claude Code, Codex CLI, Gemini CLI, and Cursor** all install and load natively. Drop in a book's worth of papers; out comes a specialist that other agents can call on.
217+
The newest generator. `openkb skill new` distills an [agent skill](https://docs.claude.com/en/docs/build-with-claude/skills) from any subset of your wiki, a portable folder that major agents (Claude Code, Codex, etc.) install and load natively. Drop in a book's worth of papers; out comes a specialist that other agents can call on.
209218

210219
```bash
211220
openkb skill new karpathy-thinking \
@@ -281,7 +290,7 @@ extra_headers:
281290
Copilot-Integration-Id: vscode-chat
282291
```
283292

284-
Subscription-based providers that authenticate via OAuth device flow (e.g. `chatgpt/*`, `github_copilot/*`) need no API key β€” OpenKB skips the missing-key warning for them.
293+
Subscription-based providers that authenticate via OAuth device flow (e.g. `chatgpt/*`, `github_copilot/*`) need no API key; OpenKB skips the missing-key warning for them.
285294

286295
Model names use `provider/model` LiteLLM [format](https://docs.litellm.ai/docs/providers) (OpenAI models can omit the prefix):
287296

@@ -294,7 +303,7 @@ Model names use `provider/model` LiteLLM [format](https://docs.litellm.ai/docs/p
294303
### PageIndex Integration
295304

296305
Long documents are challenging for LLMs due to context limits, context rot, and summarization loss.
297-
[PageIndex](https://github.com/VectifyAI/PageIndex) solves this with vectorless, reasoning-based retrieval β€” building a hierarchical tree index that lets LLMs reason over the index for context-aware retrieval.
306+
[PageIndex](https://github.com/VectifyAI/PageIndex) solves this with vectorless, reasoning-based retrieval, building a hierarchical tree index that lets LLMs reason over the index for context-aware retrieval.
298307

299308
PageIndex runs locally by default using the [open-source version](https://github.com/VectifyAI/PageIndex), with no external dependencies required.
300309

@@ -329,7 +338,7 @@ OpenKB's wiki is a directory of Markdown files with `[[wikilinks]]`. Obsidian re
329338

330339
### Using with Claude Code / Codex / Gemini CLI
331340

332-
OpenKB ships a `SKILL.md` so any agent CLI can read your compiled wiki β€” no extra runtime, no MCP setup, just install the skill once.
341+
OpenKB ships a `SKILL.md` so any agent CLI can read your compiled wiki. No extra runtime, no MCP setup, just install the skill once.
333342

334343
**Claude Code**:
335344

@@ -344,15 +353,15 @@ OpenKB ships a `SKILL.md` so any agent CLI can read your compiled wiki β€” no ex
344353
gemini skills install https://github.com/VectifyAI/OpenKB.git --path skills/openkb --consent
345354
```
346355

347-
**OpenAI Codex CLI** (no marketplace command yet β€” manual symlink):
356+
**OpenAI Codex CLI** (no marketplace command yet; manual symlink):
348357

349358
```bash
350359
git clone https://github.com/VectifyAI/OpenKB.git ~/openkb-src
351360
mkdir -p ~/.agents/skills
352361
ln -s ~/openkb-src/skills/openkb ~/.agents/skills/openkb
353362
```
354363

355-
The skill is read-only β€” it won't run `openkb add`, `remove`, or `lint --fix` without you asking. See [`skills/openkb/SKILL.md`](skills/openkb/SKILL.md) for the full instruction set.
364+
The skill is read-only; it won't run `openkb add`, `remove`, or `lint --fix` without you asking. See [`skills/openkb/SKILL.md`](skills/openkb/SKILL.md) for the full instruction set.
356365

357366
# 🧭 Learn More
358367

@@ -362,9 +371,11 @@ The skill is read-only β€” it won't run `openkb add`, `remove`, or `lint --fix`
362371
|---|---|---|
363372
| Short documents | LLM reads directly | markitdown β†’ LLM reads |
364373
| Long documents | Context limits, context rot | PageIndex tree index |
365-
| Supported formats | Web clipper β†’ .md | PDF, Word, PPT, Excel, HTML, text, CSV, .md |
374+
| Input sources | Web clipper β†’ .md | PDF, Word, PPT, Excel, HTML, text, CSV, .md, URLs |
366375
| Wiki compilation | LLM agent | LLM agent (same) |
376+
| Entity extraction | Manual | Automatic (people, orgs, places, products) |
367377
| Q&A | Query over wiki | Wiki + PageIndex retrieval |
378+
| Output | Wiki only | Wiki + Skill Factory + agent CLI integration |
368379

369380
### The Stack
370381

@@ -391,9 +402,18 @@ Contributions are welcome! Please submit a pull request, or open an [issue](http
391402

392403
Apache 2.0. See [LICENSE](LICENSE).
393404

405+
### 🌐 Open-Source Ecosystem
406+
407+
Other [open-source projects](https://docs.pageindex.ai/open-source) from the PageIndex ecosystem:
408+
409+
- [PageIndex](https://github.com/VectifyAI/PageIndex) β€” Vectorless, reasoning-based RAG framework for long documents
410+
- [ChatIndex](https://github.com/VectifyAI/ChatIndex) β€” Tree indexing and retrieval for long conversational histories and memory
411+
- [ConDB](https://github.com/VectifyAI/ConDB) β€” A KV-cache native context database for tree-based retrieval at scale
412+
- [PageIndex MCP](https://github.com/VectifyAI/pageindex-mcp) β€” The MCP server for PageIndex
413+
394414
### Support Us
395415

396-
If you find OpenKB useful, please give us a star 🌟 β€” and check out [PageIndex](https://github.com/VectifyAI/PageIndex) too!
416+
If you find OpenKB useful, please give us a star 🌟 and check out [PageIndex](https://github.com/VectifyAI/PageIndex) too!
397417

398418
<div>
399419

0 commit comments

Comments
Β (0)