What you can do
Browse the tree
Read the full folder and document hierarchy for your company.
Publish content
Create folders and push documents from markdown — your CMS, a docs pipeline, or a scheduled sync.
Retrieve
Full-text, vector, and hybrid search — usable as retrieval for your own LLM, not just Keebai’s.
Assign to assistants
Decide which assistants can read which nodes.
Scopes
An external app that only uses Keebai as a retrieval backend needs
knowledge:read and knowledge:query — nothing else. Keep knowledge:delete out of any token a sync job holds.
Everything is a node
Folders and documents are both nodes in one tree, which is why deletion is a single endpoint rather than one per type. That has a consequence worth stating plainly: deleting a folder deletes its descendants. There is no “move children up” behaviour and no recycle bin.Documents are written as markdown
You publish markdown; Keebai converts it to BlockNote (the editor format the portal uses) and reindexes it for retrieval. That conversion is one-way — read a document back and you get the stored structure, not the markdown you sent. Keep your source of truth on your side and treat Keebai as the published copy. Indexing happens on write, so a document is searchable shortly after creation rather than instantly. Do not write a document and assert on a search result in the same breath.Publishing does not mean an assistant can read it
Creating a document puts it in the tree. It does not make any assistant use it — assignment is a separate, explicit step. A sync that creates documents and never assigns them produces a knowledge base that looks full in the portal and changes nothing about what your assistants say. The usual pipeline is: create folder → create documents → list assistants → assign.Errors
Branch on
error.code, not on the message text.
Next steps
Read the tree
See what is already there before you write.
Publish a document
Push markdown and index it for retrieval.