> For the complete documentation index, see [llms.txt](https://docs.meganova.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.meganova.ai/libra-os/documents-and-knowledge.md).

# Documents & Knowledge

This is the workflow most people touch first: upload a document, confirm it was indexed, search it, use it in a conversation or report, and delete it cleanly when you no longer need it.

## Signing in

Open your Libra OS dashboard URL and sign in with the email and password issued by your admin. If your organization uses single sign-on, click **Sign in with SSO** and authenticate through your identity provider.

After login you land on the home dashboard. The left sidebar has the main sections you'll use: **Documents**, **Knowledge**, **Agents**, **Chat**, and **Reports**.

***

## 1. Uploading documents

Go to **Documents** in the sidebar. You'll see your private file tree — admins see everyone's tree plus a shared `_legacy` folder.

**To upload:**

1. Navigate into a folder (or stay at the root).
2. Drag a file onto the window, or click **Upload** and pick one.
3. You'll see a progress bar while the file transfers.

**Supported file types**

| Works out of the box          | Not supported yet                |
| ----------------------------- | -------------------------------- |
| PDF (with text layer)         | Scanned PDFs (no OCR by default) |
| Word — `.docx`, `.doc`        | Excel — `.xlsx`                  |
| Markdown — `.md`, `.markdown` | PowerPoint — `.pptx`             |
| Plain text — `.txt`           | Images — `.png`, `.jpg` (no OCR) |
| HTML, XML, JSON, YAML, CSV    | Audio / video                    |
| Email — `.eml`                |                                  |
| Zip archives (auto-unpacked)  |                                  |

If you upload something in the "not supported yet" column, Libra OS will save the file but not index it — you won't see it in search results. Ask your admin to enable Docling or LlamaParse if you need OCR or spreadsheet support.

**File size**

Default limit is 50 MB per file. Uploading a larger file returns an error before anything is written.

**Pick the target collection (optional)**

Next to the Upload button is a small **"Index into collection"** dropdown. It defaults to **Auto** — admins land in the shared `default` collection, regular users land in their private `user_<id>` collection. If you want to route this file into a specific named collection (e.g. `legal-contracts`), pick it from the dropdown before uploading. Admins can pick any collection; regular users can only pick their own.

**What happens after upload**

Super Nova (the built-in admin agent) picks up the file in the background, extracts text, splits it into passages, generates embeddings, and stores them in your collection. This usually completes within a few seconds for short documents, or up to a minute for a long PDF.

The upload dialog closes as soon as the file is on disk — the indexing happens asynchronously after that. The next section shows how to confirm it finished.

***

## 2. Checking that a document was indexed

Three easy ways, from quickest to most detailed:

### A. Ask Super Nova

Open **Super Nova** from the sidebar and type:

```
/stats
```

It returns the current chunk count per collection. Upload a file, wait a few seconds, run `/stats` again — the count should go up. If it doesn't, run `/stats` one more time after 30 seconds; large PDFs take longer.

### B. Search on the Knowledge page

Go to **Knowledge**, click into your collection, and type any phrase you know is in the document. If chunks appear with a match score, indexing worked.

### C. Ask an agent

Go to **Chat**, pick an agent that's bound to your collection, and ask a question about the document. If the agent answers with information only found in your file (and shows a citation), indexing and retrieval both work.

**If a document never appears in search**

1. Check file type against the supported list above.
2. For PDFs, open the file and try copy-pasting a sentence. If you can't select text, it's a scanned image — Libra OS can't read it without OCR.
3. Look at Super Nova's job status (`/stats` also shows recent jobs). A failed job usually means a malformed or password-protected file.

***

## 3. Searching your knowledge

You have three ways to query your knowledge, each suited to a different need.

| Method                    | When to use it                                                                              | Where                              |
| ------------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------- |
| **Knowledge page search** | "Which chunks mention X?" — you want to see raw passages with scores                        | Knowledge → collection → query box |
| **Chat with an agent**    | "Answer this question using my docs" — you want a synthesized answer with citations         | Chat → pick an agent               |
| **Report generator**      | "Write me a full briefing on X citing my docs" — you want a multi-section markdown document | Chat → type `/report <topic>`      |

The Knowledge page is the truth layer: if something shows up there, agents and reports can use it. If it doesn't show up there, nothing downstream will find it either.

***

## 4. Organizing with collections

A **collection** is a named group of indexed content. Think of it like a folder in a filing cabinet — but the folder is what agents "see," not the filesystem.

### The collection you already have

Every user starts with one private collection named after their user ID (for example, `user_alice`). Any file you upload as a regular user goes into this collection automatically. No one else can read it.

### Shared collections (admins)

Admins can create additional collections on the Knowledge page — for example, `legal-policies`, `employee-handbook`, or `customer-contracts`. Each shared collection has an access level:

* **Private** — only the creator and explicitly-granted users
* **Corporate** — everyone in the organization
* **Public** — any authenticated user

When you upload as an admin, you can pick which collection the file goes into; regular users always write to their own.

### Giving an agent access

Agents don't automatically see every collection — you bind them explicitly. On the **Agents** page, open an agent and choose which collections it can query. An agent that's not bound to a collection can't answer questions from it, even if the user has access.

This is how you build role-specific experiences: a customer-support agent bound only to `product-manuals`, a legal-review agent bound only to `contracts`.

***

## 5. Deleting a document

Go to **Documents**, find the file (or folder), and click the delete button.

**What happens:**

1. The file is removed from disk.
2. Libra OS emits a delete event for each affected file.
3. Super Nova wipes every chunk and embedding from the knowledge store that came from that file.
4. Searches, agent responses, and future reports stop returning the deleted content.

**Folder deletes:** if you delete a folder, every indexed file inside it is deleted from the knowledge store too.

**Timing:** the file disappears from the UI immediately; the chunks are removed in the background within a second or two. If you search for the deleted content right after deleting, you might briefly see a stale result. Refresh once and it'll be gone.

**What is&#x20;*****not*****&#x20;deleted:**

* The indexing job history (kept as an audit trail)
* Any report markdown you already generated that cited the document (those are static files)
* The user's observational memory (what they said in chat is separate from what's in their documents)

***

## 6. Tips and gotchas

* **Indexing is asynchronous.** The upload dialog closes before indexing finishes. Give it a few seconds (or up to a minute for large PDFs) before expecting search hits.
* **One collection per domain, not per file.** A `legal-contracts` collection with 500 files works better than 500 single-file collections.
* **Use the `/report` command for formal writeups.** It enforces evidence-based output and adds citations — chat can freewheel.
* **For current-events topics, enable web research** on reports. The system supplements your corpus with live search results.
* **Memory and knowledge are separate.** "What the user told me in chat" is memory; "documents the user uploaded" is knowledge. Don't paste long contracts into chat — upload them to Documents instead.
* **Regular users cannot see other users' files.** This is enforced at the backend, not just the UI. Admins see everything, including a `_legacy` folder for content that pre-dates per-user storage.

***

## 7. Current limitations

Honest list of what doesn't work yet:

* **No OCR** out of the box. Scanned PDFs and images aren't indexed. Ask your admin about enabling Docling for OCR support.
* **No Excel or PowerPoint** without Docling.
* **No bulk re-tag** — to move a document to a different collection, you currently delete and re-upload.
* **CSV retrieval is keyword-heavy.** The current chunker groups rows together, so exact-ID lookups work well but analytical questions ("how many rows where X?") need the Reports tool or SQL, not plain RAG.

If any of these block you, raise it with your admin — most have well-defined upgrade paths.

> **Admin readers:** for operational topics (binding agents to collections, fixing stalled indexing, the system status page, auto-reconciliation), see the [**Admin Guide**](/libra-os/admin-guide.md).
