A shared knowledge store of files and documents — one Library per human, reachable from every one of their companions, with streamed uploads, deterministic folders, and best-effort text extraction so content becomes searchable without ever blocking on it.
One Library per human
The Library belongs to you, not to a single companion. Whichever agent you're talking to, uploads and searches land in the same place — add a file while working with one companion and any other companion of yours can find it later. Visibility then decides how far it travels:
- Private (default) — visible to you across all your companions, not to anyone else in the company.
- Company-wide — explicitly shared with everyone in the company, the same explicit-sharing step used for memory (see Memory) — though private here means visible to you across every one of your companions, not scoped to a single one the way a private memory is.
Two ways to add a file
- Ask your companion — a companion can upload a file it has access to directly from the conversation. Auto-allow only covers the thread's own working directory, since anything there was necessarily produced by that thread; a file anywhere else — including a folder approved for ordinary reads as an extra directory — still prompts once, with once/this-thread scopes, before it can leave as an upload (see Security). Nothing is uploaded without that consent.
- The Library button — drop one or several files yourself from the left rail, through your OS's native file picker. Because you're the one choosing the files through the system dialog, no separate read permission is needed for this path.
Either way, the file is streamed straight to storage — there's no size-inflating encoding step, and once accepted it's already downloadable. A small companion-authored note or snippet can also be published as text directly, without going through a file upload at all; this text path is capped to a much smaller size than a file upload, so it stays a place for short authored content, not a document store.
Deterministic folders
A popup upload asks you to name one destination folder before it will start — a project, a client, whatever fits how you think about your files; there's no unlabeled option on this path. A companion-driven upload instead inherits whichever folder(s) the current conversation is already tagged with, landing in Unclassified only if that conversation has none. Folder names are plain labels attached at upload time, not a browsable tree to manage separately: you see them as a badge on each artifact and can search across everything with full-text search, regardless of folder.
Processing and degraded states
An uploaded file goes through up to three states, and it is downloadable at every one of them:
- Processing — the file has been accepted and stored; it can already be downloaded and shared. Text extraction hasn't run yet, so it isn't searchable by content.
- Ready — extraction succeeded; the file is now searchable by its content, not just its name.
- Degraded — extraction couldn't produce usable text (an unsupported, encrypted, or corrupted file, for example). The original file remains exactly as accepted, fully downloadable and shareable — it's just not searchable by content.
Storage and extraction are deliberately two different moments: once a file has been accepted and stored, it's already downloadable, and making it searchable is a best-effort step that happens afterward and never blocks or reverses that acceptance. Acceptance itself can still be refused before that point — invalid metadata, an unnamed folder, or a rate limit reject the upload outright, the same way permission would.
Best-effort extraction
Extraction looks at what a file actually is rather than trusting its extension, and covers plain text, common office and OpenDocument formats, and PDFs — including scanned PDFs and photographed documents, read through OCR. Anything extraction can't handle simply falls back to degraded rather than being rejected.
Related
- Memory — the same private-by-default, explicit-sharing pattern applies to memories, best practices, skills, and command-safety rules, though a memory's private default is scoped to one companion rather than to you across all of them
- Security — permission scopes and consent for sensitive actions
- Desktop app — where the Library sits in the interface