Turning a pile of documents into a searchable useable knowledge base DocuBrowse, a new desktop application, turns local document collections into searchable knowledge bases using AI-powered semantic search and summaries, all running offline with no internet or API keys required. The tool supports multiple file formats, offers hybrid keyword and semantic search, and includes PII protection features. Packaged for Linux RPM, DEB, tarball , Windows zip , and macOS dmg . Interfaces are stable; breaking changes are avoided where possible. DocuBrowse turns a messy pile of documents into something you can actually search. Point it at your files — PDFs, ebooks, Word docs, notes, whatever — and it builds a smart index that understands not just keywords, but meaning. Ask for "that contract about the lease renewal" and find it even if those exact words never appear. Click any result for an instant AI summary before you even open the file. PII aware and works with multiple document directories. DocuBrowse runs entirely on your own machine using local AI models — no internet connection required, no accounts, no API keys, and no per-query costs eating into a token budget. Your data. Your AI. Under the hood: SQLite FTS5 keyword search plus AI-powered semantic similarity and synopsis generation Ollama + nomic-embed-text + dolphin3 . Supports multiple document and source code types. Keyword Search — fast full-text search via SQLite FTS5 title, author, subject, tags, snippet Semantic Search — AI-powered similarity via Ollama embeddings nomic-embed-text:latest Hybrid Mode default — 70% semantic + 30% keyword, merged and re-ranked - Click any document title for a Kindle-style book-jacket synopsis, generated on demand via Ollama dolphin3:latest and cached in the database after first generation. Semantic search embeddings are produced by a second local model nomic-embed-text:latest Formats : PDF, DOCX, PPTX, XLSX, EPUB, MOBI, AZW3, AZW, HTML, TXT, Markdown PDF intelligence : pdfplumber preferred with pypdf fallback for bloated-object files; layout=False retry for complex layouts; scanned image-only PDFs detected and routed to ocr list pdfs.txt Word documents : python-docx extracts paragraphs, tables, and core properties title, author, subject Presentations : python-pptx extracts slide text, notes, and core properties Spreadsheets : openpyxl extracts cell values and sheet names E-books : ebooklib for EPUB; mobi package + Calibre fallback for MOBI/AZW3; DRM-encrypted AZW files indexed with metadata only title/author visible, body not searchable Metadata : title, author, subject extracted from document metadata fields; auto-generated tags from directory structure and content keywords PII protection : post-ingest scanner detects SSN, credit card, bank routing/account number, DOB, MRN, driver license, passport patterns; removes matching documents and permanently blacklists them - Dark/Light theme toggle - Paginated results 50 docs/page with Back/Next controls - Alphabetic index bar A–Z, 0–9 for quick navigation, with state preserved across page loads; Home button to reset - Tag cloud for filtering by topic - Relevance score badges 0–100% on every result Open button on each result card — launches the file in your default app via xdg-open - Click document title for an AI synopsis; 📋 copies path to clipboard; 🗑 deletes file from disk and index with confirmation - Moved/deleted documents: clicking a doc whose file no longer exists shows a dismissable modal and removes it from the index on dismiss if its filesystem is mounted, or a toast no index change if the filesystem can't be verified e.g. unmounted drive - General panel: document directory with live directory browser , any number of additional scan directories added/removed under the same panel — automatically included in scan / rescan , no extra command needed , working directory, and port - Ignored Directories panel: browse to add a directory to ignore dirs.txt , with a confirmation prompt before purging already-indexed documents under it, and a confirmation before removing an entry - Search latency: <150ms typical - 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 Click any thumbnail to view full size. | Dark Mode | Light Mode | |---|---| | Settings | AI Synopsis | |---|---| Settings is a standalone page at /settings opened in a new tab via the gear icon . The General panel covers the document directory with live directory browser, plus any number of additional scan directories , working directory, and port; the Ignored Directories panel manages scan exclusions, each with a directory browser, add/clear controls, and confirmation before removal. - Python 3.9+ pdfplumber , pypdf — PDF extraction python-docx — Word documents python-pptx — PowerPoint presentations openpyxl — Excel spreadsheets ebooklib , beautifulsoup4 , mobi — E-books psutil — cross-platform process and hardware detection Calibre — E-book metadata and conversion required for MOBI/AZW3/AZW indexing : sudo dnf install calibre or sudo apt install calibre - Ollama — installed automatically by docubrowser start if missing - Modern browser Chrome, Firefox, Safari, Edge See INSTALL.md /linuxrebel/DocuBrowser/blob/main/INSTALL.md for a full step-by-step guide. DocuBrowse ships as RPM, DEB, tarball, Windows zip, and macOS dmg packages. Download the appropriate package from the Releases https://github.com/linuxrebel/DocuBrowser/releases page. Fedora / RHEL sudo dnf install ./docubrowser-foss-0.9.0-7.noarch.rpm Debian / Ubuntu / Mint sudo apt install ./docubrowser-foss 0.9.0-7 all.deb Any Linux tarball tar xzf docubrowser-foss-0.9.0-7.tar.gz cd docubrowser-foss-0.9.0-7 sudo ./install.sh Windows: Extract the zip, then double-click Install.bat . Requires Python 3.9+ and Ollama to be pre-installed. Installs to %USERPROFILE%\DocuBrowse with a Start Menu shortcut — no admin required. You may need to log out and back in for the shortcut to appear. macOS: Open the dmg, then double-click Install.command right-click → Open the first time — the scripts are unsigned . Requires Python 3.9+. Installs to ~/Applications/DocuBrowse/ with a Python virtualenv, CLI wrappers at /usr/local/bin/docubrowser and /usr/local/bin/docuback sudo prompted; falls back to ~/bin/ if declined , and a DocuBrowse.app launcher that starts the server and opens the web UI in Terminal. All Linux methods install to /opt/docubrowser/ with a Python virtualenv, CLI wrappers at /usr/bin/docubrowser and /usr/bin/docuback , a desktop menu entry under Office, and all Python dependencies from requirements.txt . Once installed, the CLI is the docubrowser command — drop the ./ and .py from every example below. For example, docubrowser start and docubrowser rescan . The ./docubrowser.py