Ingestion is how anything gets into Trunkbase: hand it a file, and it's decomposed into a note in your vault — searchable within seconds.
The simplest way is to drag a file anywhere onto the Trunkbase Ingest Sidebar (or use the file picker in the Ingest rail). A destination dropdown at the top of the rail decides where in your vault the notes are saved.
What it accepts
Trunkbase decomposes the formats below into clean Markdown + structured metadata. Processing is local-first: deterministic parsers do the work, and on-device OCR is used only where a file has no extractable text.
| Category | Extensions | Remarks, restrictions & limitations |
|---|---|---|
| Documents (PDF) | Handled two ways, decided automatically. Born-digital PDFs (with a text layer) are parsed directly — fast and exact, no OCR. Scanned PDFs (no text layer) automatically escalate to on-device OCR. Detection samples the first ~5 pages. Layout and tables are reconstructed by ML models. | |
| Word processing | .docx | Deterministic extraction (no OCR/ML escalation). ⚠️ Legacy binary .doc is not supported — save as .docx first. |
| Presentations | .pptx | Deterministic extraction. ⚠️ Legacy binary .ppt is not supported — save as .pptx. |
| Spreadsheets | .xlsx | Deterministic extraction. ⚠️ Legacy binary .xls is not supported — save as .xlsx. |
| Structured data | .csv | Deterministic tabular extraction. |
| Web | .html, .htm | Deterministic HTML parsing — never sent to OCR or a vision model. |
| Markdown & text | .md, .txt | Read verbatim (passthrough) — no ML at all. These produce a Markdown record only; optional companion formats (HTML/JSON/YAML/DocTags) are recorded as skipped, never silently dropped. |
| Images | .png, .jpg, .jpeg, .tif, .tiff, .bmp, .webp | Treated as image-only input — on-device OCR extracts the text. |
Good to know
- Unsupported files fail loudly, not silently. You can select any file, but a type not listed above is rejected with a clear “unsupported file type” message — it’s never quietly ignored.
- Every accepted file always produces a Markdown record. Additional output formats (HTML, JSON, YAML, DocTags) are optional and produced alongside it where the format supports them.
- OCR runs on your device. It’s CPU-based, automatic only when needed (scanned PDFs and images), and never sends anything to the cloud.
Not supported in this version
Legacy binary Office formats (.doc, .ppt, .xls), rich text (.rtf), OpenDocument (.odt, .ods, .odp), e-books (.epub), email (.eml, .msg), and audio/video files are not currently accepted. Convert to a supported format above (e.g. export to PDF or .docx) in the meantime.
The queue tells you everything
Every file becomes a card with a live status: queued, processing, succeeded, failed, skipped. Big batches are fine — drop a hundred files at once and Trunkbase works through them one by one.
- One bad file never sinks the batch. It's marked failed with a reason in plain words ("corrupt PDF — skipped") while everything else carries on.
- Duplicates aren't silently ignored. If a file's content already exists in your vault, the queue says so.
- Progress is narrated. If you like watching the machinery: Parsing → Extracting → Composing → Indexing.
Your original file is untouched
Trunkbase reads a temporary copy, builds the note, and deletes the temporary copy. The original stays exactly where it was — Trunkbase doesn't hoard a second copy of your file.
Under the hood
Decomposition is deliberately precise, not showy: ordinary documents are parsed directly — fast and deterministic — and only genuinely ambiguous parts (a scanned page, a borderless table, a figure) escalate to the heavier recognition models. Conversion runs in a disposable worker process, so the main app stays light and search stays live while a batch churns. Indexing embeds only changed chunks, so re-ingesting an edited file costs what the edit costs — not the whole document.