DocuBrowse 0.9.0: Local AI Document Search with SQLite FTS5 and Ollama
DocuBrowse v0.9.0 is a local-first document search engine that turns a messy pile of files into a searchable knowledge base. It indexes PDFs, ebooks, Word documents, presentations, spreadsheets, and source code, then lets you search by keyword or meaning—all on your own machine, no internet required.
Dual Search Modes
DocuBrowse offers three search modes: keyword (SQLite FTS5), semantic (Ollama embeddings), and hybrid (70% semantic + 30% keyword). The hybrid mode merges and re-ranks results by relevance score (0-100%). Search latency is under 150ms typical.
AI Synopsis on Demand
Click any document title to get a Kindle-style book-jacket synopsis generated by Ollama's dolphin3:latest model. Synopses are cached in the database after first generation. Semantic search embeddings use a separate model: nomic-embed-text:latest.
Supported Formats
- PDF: pdfplumber (preferred) with pypdf fallback; scanned PDFs detected and routed to
ocr_list_pdfs.txt - Word: python-docx (paragraphs, tables, metadata)
- PowerPoint: python-pptx (slide text, notes)
- Excel: openpyxl (cell values, sheet names)
- Ebooks: EPUB (ebooklib), MOBI/AZW3 (mobi + Calibre fallback), DRM-encrypted AZW (metadata only)
- HTML, TXT, Markdown
PII Protection
Post-ingest scanner detects SSN, credit card numbers, bank routing/account numbers, DOB, MRN, driver license, and passport patterns. Matching documents are removed from the index and permanently blacklisted.
Installation and Quick Start
DocuBrowse 0.9.0 ships as RPM, DEB, tarball, Windows zip, and macOS dmg. Install via package manager or extract tarball and run sudo ./install.sh. Prerequisites: Python 3.9+, Ollama (auto-installed if missing by docubrowser start), and Calibre for MOBI/AZW3.
First run (dev clone):
./docubrowser.py rescan
./docubrowser.py start
./docubrowser.py open
On installed systems, use docubrowser command instead.
CLI Commands
scan [TYPE ...]: Index documents without embeddingsrescan [TYPE ...]: Index + generate embeddingsscan-file --file PATH: Index a single file (useful for retrying blacklisted files)embed: Generate/refresh embeddings for un-embedded documentspurge: Scan index for PII and remove matching documentsduplist/dupclean: Find and remove duplicate documents (exact SHA256 and near-duplicates with cosine >=97%)scan-missing: Opt-in cleanup for moved/deleted files
Performance and Memory Safety
- Parallel PDF extraction with ProcessPoolExecutor (physical-core-aware worker count)
- Memory-safe: kernel-enforced RLIMIT_AS (6 GB/worker) + pause/resume on free-RAM threshold
Configuration and UI
Settings page at /settings manages document directories (with live browser), ignored directories, working directory, and port. UI features dark/light theme, paginated results (50 docs/page), alphabetic index bar, tag cloud, relevance score badges, and file launch via xdg-open.
Under the Hood
- SQLite FTS5 for keyword search
- Ollama + nomic-embed-text for semantic embeddings
- Ollama + dolphin3 for synopsis generation
- PII scanner using regex patterns
Why It Matters
DocuBrowse is a fully offline, local-first document search tool that respects privacy. It combines traditional full-text search with modern AI embeddings, all without API keys or recurring costs. For developers managing large document collections, it offers a self-hosted alternative to cloud-based solutions.
Next Steps
Download the appropriate package from the Releases page and try it. Run docubrowser rescan on your document directory, then docubrowser start to explore. If you find issues, the project is open source—contribute on GitHub.


