I kept accumulating PDFs, invoices, and contracts in one messy folder with no real way to search inside them — just filenames. DEVONthink solves this well, but it's Mac-only. The open-source alternative, Paperless-ngx, is solid but requires Docker and a self-hosted server, which is overkill if you just want something that runs locally on your own machine.
So I built Robelius — a Windows desktop tool that indexes PDF, DOCX, and TXT files, makes them fully searchable by content (not just filename), and organizes them automatically.
What it does
- Full-text search, including inside DOCX tables and scanned PDFs (automatic OCR via Tesseract)
- Auto-detects document type (invoice, contract, quote, receipt, resume, certificate) and sorts into folders
- Smart rename based on actual content — document type + date, with a preview before applying anything
- Duplicate detection with a recoverable internal trash (nothing is permanently deleted without explicit confirmation)
- Automatic backup before any operation that moves or deletes files
- Real-time folder monitoring — new files get indexed as soon as they land
- Multi-folder profiles, each with a separate search index (useful if you manage multiple clients)
The technically annoying parts
SQLite + threading. Running the indexer in a background thread (so the GUI doesn't freeze) while sharing a single SQLite connection threw SQLite objects created in a thread can only be used in that same thread — the fix was check_same_thread=False, but figuring out why it broke took longer than fixing it.
Interrupting mid-file, not just mid-folder. My first version of the Stop button only checked between files — meaning if you hit Stop while OCR was running on a big scanned PDF, nothing happened until that file finished, sometimes minutes later. Had to push the stop check down into the page-by-page OCR loop itself, and make sure a stopped file doesn't get saved with partial content (otherwise it'd be skipped forever on resume, stuck half-indexed).
Tkinter's native dialogs don't theme. messagebox and simpledialog ignore your app's color scheme entirely — ended up building themed replacements from scratch with Canvas and Toplevel to keep a consistent dark UI.
Where it stands now
Windows-only, everything runs locally, nothing sent to the cloud. Free 7-day trial, full features, no credit card:
If you've built something similar or use a different local-first tool for this, I'd like to hear what you use.
Top comments (0)