A modern desktop application for parsing and processing documents (PDF, DOCX, TXT) with intelligent image context extraction.
Built with Rust + Tauri + Svelte for maximum performance and minimal footprint.
.doc files are accepted but routed through the DOCX parser — pure legacy .doc binary support is not implemented; RTF is not supported)nsis / dmg targets to tauri.conf.json is welcomed via a PRsudo apt install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev
The Tauri toolchain compiles on Windows but tauri.conf.json only
defines Linux bundle targets, so npm run tauri build produces a
debug executable rather than a packaged installer. To get an .msi
or .exe, add nsis / msi to bundle.targets in a fork.
Prerequisites if you want to try:
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Clone and build
cd document-processor
npm install
npm run tauri build
npm run tauri dev
Processed documents land under the app's data directory:
<project-root>/dane/
├── documents.db # SQLite index of every processed file
└── przetworzone/<document-id>/ # one folder per document
├── document.md # Human-readable markdown
├── document.json # Structured data for AI
├── images/
│ ├── img_001.png # Extracted images
│ ├── img_001.json # Image metadata + context
│ └── thumb_001.png # Thumbnails
└── original.<ext> # Original file copy
<project-root> is the directory the launcher selects on startup (the
working directory under development; /opt/document-processor on a
packaged install). dane/ and przetworzone/ are Polish legacy
identifiers (Polish for "data" and "processed") — see CONTRIBUTING for
the rename policy.
Each image includes:
context_before: 200 characters of text before the imagecontext_after: 200 characters afterposition_marker: Page and position referenceocr_text: Text extracted from image (if applicable)ai_description: AI-generated description (when available)Two companion Claude Code skills live outside this repo and call the processor over the command line. They are not bundled here — install them separately in your Claude Code configuration:
/parse — parses a document and extracts text + images./parse ~/Documents/contract.pdf
/document-upload-analyzer — analyses document upload methods in a
web application./document-upload-analyzer
document-processor/
├── src/ # Svelte frontend
│ ├── App.svelte # Main component
│ ├── main.js # Entry point
│ └── styles.css # Global styles
├── src-tauri/
│ └── src/
│ ├── main.rs # Tauri entry point
│ ├── parser.rs # Document parsing logic
│ ├── db.rs # SQLite database
│ └── watcher.rs # Folder watching
└── package.json
Dual-licensed: