Supported files
Every file type Agnos reads, what it takes from each, the size limits, and what it refuses.
What Agnos reads
| Kind | Extensions | Largest file |
|---|---|---|
.pdf | 300 MB and 5,000 pages | |
| Word | .docx | 100 MB |
| PowerPoint | .pptx | 100 MB |
| Excel | .xlsx | 100 MB and 2,000,000 cells |
| Web pages | .html .htm .xhtml | 25 MB |
| CSV and TSV | .csv .tsv | 200 MB |
| JSON records | .json | 64 MB |
| JSON records, one per line | .jsonl .ndjson | 200 MB |
| Plain text | .txt .text .md .markdown .rst .log .tex | 200 MB |
| Markup and config, read as text | .css .xml .yaml .yml .ini .cfg .conf .toml .properties | 200 MB |
| Source code, read as text | .py .js .mjs .cjs .ts .jsx .tsx .java .c .h .cc .cpp .hpp .cs .go .rs .rb .php .swift .kt .scala .sql .r .m .lua .pl .sh .bash .zsh .fish .ps1 .bat | 200 MB |
Agnos also cleans at most 100,000,000 characters of text and 1,000,000 records or rows from one file, and one line of a JSONL file can be at most 8 MB. A file over a limit is refused with the limit; split it into smaller files.
Before accepting a file, Agnos checks that your drive has room for it and for what it will make from it. If not, the message says how much space is needed.
To add a whole folder, see Import documents.
Details by file type
- Agnos reads each page's text layer. A page without one, such as a scan, is skipped and named in the file's warnings. A PDF with no text at all is refused.
- Filled-in form fields are read as
field name: answer. Password fields, signatures and buttons are not. Forms made with Adobe LiveCycle (XFA) may not give up their answers. - Not read: comments, highlights and attached files.
- PDF reading mode: Text only is fast. Layout is slower, and is the only mode that reads tables.
- Each piece records its pages. A page can be off by one where a sentence runs across a page break.
Word
- Read: body text, headings, tables, text boxes, and footnotes and endnotes (placed after the paragraph that cites them).
- Not read: comments, tracked deletions, page headers and footers, and text in charts or SmartArt.
- Numbers that Word adds to lists, such as “1.” or “a)”, do not come through. The list items do.
- A cell merged across columns is written once. A cell merged down several rows is repeated on each row.
- Word has no fixed pages, so pieces carry their headings instead of page numbers.
PowerPoint
- Read: titles, text boxes, tables and grouped shapes.
- Speaker notes and hidden slides are left out unless you turn on PowerPoint: read speaker notes or PowerPoint: read hidden slides. The warnings say when a deck has either.
- Not read: pictures, and text in charts, SmartArt and embedded objects.
- Each piece records its slides.
Excel
- Read: the cell values of every visible sheet. Hidden sheets are skipped and named in the warnings.
- Not read: comments and charts. Formulas, formatting, merged cells and column types are not kept.
- Each sheet becomes tab-separated lines under a
# Sheet: <name>heading. - A formula with no stored result comes through empty. This is common in workbooks made by a script: open it in Excel, let it recalculate, save it and add it again.
CSV and TSV
Spreadsheets and CSVs, in Settings under Reading files, applies to Excel files too:
- Rows
- Each sheet becomes tab-separated lines. Safe for anything.
- Records
- Each row becomes its own piece, with one
name: valueline per filled cell. Suits a table where each row is one thing, such as a ticket or an order.
In Records mode, the first row is a header only if it is all text with no repeated names; otherwise the columns are called column_1, column_2 and so on. Values such as 00123, +44, 1,200 and 01/03/2024 stay text.
Web pages
HTML extraction mode sets how much of a saved page to keep: Article keeps the main text and drops navigation, Raw keeps all visible text, and Auto uses Article when it can and Raw otherwise.
Other settings keep the page's headings, lists, tables and link addresses.
JSON and JSONL
- A
.jsonlor.ndjsonfile holds one record per line. - A
.jsonfile must hold a list of records, or one object whose only list holds them. It is read whole, so its limit is lower; save a bigger file as.jsonl. - Agnos reads one text field from each top-level record. Records nested inside records are not unpacked.
- JSON text fields (empty = detect) names the field that holds the text. Left empty, Agnos works it out and says which field it used. A dotted name such as
data.bodyreaches into a nested object. - JSON fields to keep beside the text carries other fields, such as a status or a date, on each piece: up to 20 fields of up to 2,000 characters.
- A malformed line is reported with its number. The file is refused if the first line is malformed, or more than one line in twenty.
- A piece never mixes text from two records.
Plain text and code
Read as it is. Agnos detects the encoding (UTF-8, UTF-16 or UTF-32 with a byte-order mark, or Windows-1252); Auto-detect Encoding and Fallback Encoding, under Reading files, change that. A file that is mostly binary data is refused.
What Agnos refuses
Each refusal says what to do instead.
| Kind | Extensions | What to do instead |
|---|---|---|
| Old Word documents | .doc | Open it in Word, save it as .docx and add it again. |
| Old Excel workbooks | .xls | Open it in Excel, save it as .xlsx and add it again. |
| Old PowerPoint decks | .ppt | Open it in PowerPoint, save it as .pptx and add it again. |
| Rich Text Format | .rtf | Save it as .docx and add it again. |
| OpenDocument files | .odt .ods .odp | Save it as .docx, .xlsx or .pptx and add it again. |
| Images | .png .jpg .jpeg .gif .bmp .webp .tiff .tif .svg .ico .heic .heif .avif .jp2 .j2k | Agnos reads text, not pictures of text. |
| Archives | .zip .tar .gz .tgz .bz2 .xz .7z .rar .zst .lz4 | Unpack it and add the documents inside. |
| Audio and video | .mp3 .wav .flac .ogg .m4a .aac .wma .mp4 .avi .mov .wmv .flv .mkv .webm .m4v | Transcribe it, then add the transcript as .txt. |
| Programs | .exe .dll .msi .com .bin .so .dylib .apk .jar | Add the documents themselves. |
| Binary data files | .parquet .feather .orc .hdf5 .h5 .hdf .avro .msgpack .pickle .pkl .db .sqlite .sqlite3 | Export the rows you want as .csv or .jsonl and add that. |
Any other extension is refused with a list of what Agnos reads.
Refused for what is inside
- Scanned PDFs
- A scan has no text layer to read. If you have the document the PDF was made from, add that instead.
- Password-protected files
- Remove the password in the program that made the file, then add it again.
- Damaged files
- Open the file in the program that made it, save a fresh copy, and add that.
- Renamed files
- Files are checked by their contents, not only their extension, so renaming a file does not get it through.
- Oversized Office files
- A Word, Excel or PowerPoint file with more than 10,000 parts inside, or that unpacks to more than 1 GB, is refused.
Something here wrong or unclear? Tell us and we will fix the page.