SOFTWARE
DocExtr Changelog
Changes that affect how DocExtr is used and what it produces, by release. Internal tests, build tooling, and documentation fixes are not listed.
0.1.1 2026-10-11
Extraction results are now available for four purposes: AI agents, embeddings, search, and plain text. Output formats, some commands, and the Python API are not compatible with 0.1.0.
Added
- Image OCR — reads text in images embedded in documents and in standalone image files. Turn it on with
--ocr true --ocr-models DIR; the default isfalse. The CLI and Python wheel include the OCR engine - OCR targets — pages or slides with no body text, or unit numbers you specify.
--ocr-pdf-render truerenders the selected PDF pages in full for recognition - OCR text from note images stays with the notes, separate from the body, and the recognized text is saved as a
.txtfile next to each exported image - agent results separate per-unit body text (
body_text,body_markdown) from notes. Parsed PDF pages and PPTX slides keep their structure even when the body is empty, and PPTX design is preserved
Changed
--targetsselects only the results you need (all four by default):agentgives Markdown with repeated tables of contents and headers cleaned up, plus document structure and images;textgives plain text and Markdown faithful to the source;embeddinggives chunks sized by estimated token count; andsearchgives search documents sized by character count. Chunk size and overlap are set separately for embeddings and searchextractandbatchwrite to per-document directories, JSONL shards, or a database.batch --layout documentmirrors the input folder structure with files for each document, and stores archive contents under a directory named after the archive with a.vfs/suffix- File output consists of a manifest with the document status plus one set of files per requested purpose. Database output is split into a document table and embedding and search chunk tables
- Python extraction functions and
Enginereturn results by purpose, andexport_filewrites the same file layout
Breaking changes
- CLI
runis renamedbatch, with no alias for the old name document.json,chunks.jsonl, and the 11-field JSONL and CSV output are replaced by the manifest and per-purpose outputs.--chunks,--chunk-*,--format,--profile, and--no-markdownare removed; get chunks with--targets embeddingorsearchand that purpose's size and overlap options- The single database table from 0.1.0 is not converted automatically. Load the data again under a new table name
- In Python, purpose-based result dicts replace the Document dict and
extract_chunks. Embedding chunks are inembedding.chunksof thetargets=["embedding"]result - OCR options accept only
trueandfalse.off,auto,force, and--ocr-max-pagesare removed. To read whole PDF pages, use--ocr true --ocr-pdf-render true - In
batch,--cache-dirand--max-cache-bytesreplace--cache-bytesand--cache-entries, and--no-cacheturns the cache off extractleaves a manifest and exits with code 3 when extraction fails or is partial
Downloads
- CLI — Linux x86_64 and Windows x64, with OCR and database output
- Python wheel — Linux x86_64 (
manylinux_2_28), CPython 3.9–3.14. Includes the OCR engine; database output and job state are not included - OCR model (PaddleOCR-VL 1.6 Q8) — not included in the CLI or wheel; install it separately
- Licenses — the CLI and Python wheel are MIT. Third-party notices and the original source of MPL-2.0 components (
docextr-0.1.1-third-party-sources.zip) are provided alongside
Known limitations
- 7z, RAR, HWP 4.x, and encrypted documents are not supported
- The
batchmemory budget does not enforce a cap on total memory use, including parsers, OCR, and database drivers - No macOS executables are provided. The Windows executable has not been verified on Windows itself; only text extraction was checked under Wine (OCR and database output unchecked)
0.1.0 2026-10-01
First public release.
Added
- CLI
docextr run— batch-processes files, directories, and the archives inside them into JSONL or CSV files or database tables. Errors are recorded in the record for that file and the rest of the batch continues - CLI
docextr extract— exports one document to a new directory asdocument.json,document.md, andassets/. With--chunksit also writes RAG chunks tochunks.jsonl - Formats — HWP/HWPX, text PDF, DOC/DOCX, PPTX, XLS/XLSX/XLSB/ODS, TXT, Markdown, HTML, and source and configuration files
- Archives — ZIP (encrypted ZIP with
--archive-password-file), TAR, TAR.GZ, and TAR.BZ2 processed recursively, with nesting depth and extracted size limits - Scanned PDF OCR — runs with
--ocr autoorforceand a separately supplied model directory. The default isoff - The 11 output record fields (
source_path,plain_text,markdown,blake3,file_type,file_size,error,title,author,created,word_count) are shared by JSONL, CSV, and database output - Database output
--output-db— loads into SQLite, PostgreSQL, MySQL, and MariaDB inappend,upsert, orreplacemode - Additional
runoptions — structured output--profile structured, result cache--cache-bytes, saving and resuming job state--stateand--resume, and a failure limit--max-failures - Python package
docextr(CPython 3.9–3.14) —extract_file,extract_bytes,extract_files,export_file,extract_chunks, and anEngineclass with a cache
Downloads
- CLI — Linux x86_64 and Windows x64, with OCR and database output. The Windows executable has been run only under Wine
- Python wheel — Linux x86_64 (
manylinux_2_28), CPython 3.9–3.14. OCR and database output are not included - Licenses — the CLI and Python wheel are MIT. Third-party notices and the original source of MPL-2.0 components (
docextr-0.1.0-third-party-sources.zip) are provided alongside
Known limitations
- 7z, RAR, HWP 4.x, and encrypted documents are not supported
- The
runmemory budget does not enforce a cap on total memory use, including parsers, OCR, and database drivers - No macOS executables are provided, and the Windows executable has not been run on Windows itself