Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 22 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@ Traditional RAG rediscovers knowledge from scratch on every query. Nothing accum

### Features

- **Any format** — PDF, Word, PowerPoint, Excel, HTML, Markdown, text, CSV, and more via markitdown
- **Broad format support** — PDF, Word, Markdown, PowerPoint, HTML, Excel, CSV, text, and more via markitdown
- **Scale to long documents** — Long and complex documents are handled via [PageIndex](https://github.com/VectifyAI/PageIndex) tree indexing, enabling accurate, vectorless long-context retrieval
- **Native multi-modality** — Retrieves and understands figures, tables, and images, not just text
- **Auto wiki** — LLM generates summaries, concept pages, and cross-links. You curate sources; the LLM does the rest
- **Query** — Ask questions against your wiki. The LLM navigates your compiled knowledge to answer
- **Compiled Wiki** — LLM manages and compiles your documents into summaries, concept pages, and cross-links, all kept in sync
- **Query** — Ask questions (one-off) against your wiki. The LLM navigates your compiled knowledge to answer
- **Interactive Chat** — Multi-turn conversations with persisted sessions you can resume across runs
- **Lint** — Health checks find contradictions, gaps, orphans, and stale content
- **Watch mode** — Drop files into `raw/`, wiki updates automatically
- **Obsidian compatible** — Wiki is plain `.md` files with `[[wikilinks]]`. Open in Obsidian for graph view and browsing
Expand All @@ -55,11 +56,11 @@ openkb add paper.pdf
openkb add ~/papers/ # Add a whole directory
openkb add article.html

# 4. Ask questions
# 4. Ask a question
openkb query "What are the main findings?"

# 5. Check wiki health
openkb lint
# 5. Or start an interactive chat session
openkb chat
```

### Set up your LLM
Expand Down Expand Up @@ -132,13 +133,28 @@ A single source might touch 10-15 wiki pages. Knowledge accumulates: each docume
| `openkb add <file_or_dir>` | Add documents and compile to wiki |
| `openkb query "question"` | Ask a question against the knowledge base |
| `openkb query "question" --save` | Ask and save the answer to `wiki/explorations/` |
| `openkb chat` | Start an interactive multi-turn chat (use `--resume`, `--list`, `--delete` to manage sessions) |
| `openkb watch` | Watch `raw/` and auto-compile new files |
| `openkb lint` | Run structural + knowledge health checks |
| `openkb list` | List indexed documents and concepts |
| `openkb status` | Show knowledge base stats |

<!-- | `openkb lint --fix` | Auto-fix what it can | -->

### Interactive chat

`openkb chat` opens an interactive chat session over your wiki knowledge base. Unlike the one-shot `openkb query`, each turn carries the conversation history, so you can dig into a topic without re-typing context.

```bash
openkb chat # start a new session
openkb chat --resume # resume the most recent session
openkb chat --resume 20260411 # resume by id (unique prefix works)
openkb chat --list # list all sessions
openkb chat --delete <id> # delete a session
```

`/help` lists all slash commands: e.g., `/save` exports the transcript, `/clear` starts a fresh session.

### Configuration

Settings are initialized by `openkb init`, and stored in `.openkb/config.yaml`:
Expand Down
8 changes: 7 additions & 1 deletion openkb/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
__version__ = "0.1.0"
"""OpenKB package."""
from importlib.metadata import PackageNotFoundError, version as _version

try:
__version__ = _version("openkb")
except PackageNotFoundError:
__version__ = "0.0.0+unknown"
Loading