Note
AI agents and LLM tools reading this repository should refer to llms.txt for codebase architecture, primary features, contract boundaries, and verification commands.
Local-first document detective — full-text indexing, OCR, PDF tools, duplicate detection & privacy checks in one PySide6 app.
ProFiler Suite is a Windows-oriented PySide6 desktop app for indexing user-selected local folders, OCR, PDF workflows, SHA-256 duplicate detection, and sensitive-term review. Its indexes and application settings are stored locally; their exact locations depend on configuration and operating system. The source also contains an optional, user-invoked GitHub module installer. The reviewed first-party paths showed no automatic upload of document contents or telemetry; the application does not block network traffic or control the operating system and external libraries.
ProFiler can help users work with local or user-selected files. Review results and redactions before sharing. The module installer can contact GitHub when explicitly invoked; ProFiler is not an egress filter or a compliance/privacy certification.
- Architecture
- Workflow Lifecycle
- Core Capabilities & Security Invariants
- Target Personas & Use Cases
- Comparative Matrix & Alternatives
- Feature Highlights
- Visual Interface & Screenshot
- When To Use ProFiler
- Quick Start & Setup
- Windows Launcher & Build Flow
- Configuration & Local Storage
- Included Tools & Utilities
- Supported File Formats & OCR
- Sibling Ecosystem & Integrations
- Third-Party Licenses
- Security Policy
- Target Personas & High-Intent SEO
- Verification & Test Suite
graph TD
subgraph Sources["1. Document & File Sources"]
A1["Local Directory Tree"]
A2["Document Folders (PDF, DOCX, TXT, RTF)"]
A3["Scanned Paperwork & Images"]
A4["OneDrive Mounts (Cloud-Placeholder Aware)"]
end
subgraph CoreEngine["2. Core Ingestion & Indexing"]
B1["Crawler & File Watchdog"]
B2["SHA-256 Fingerprinting"]
B3["SQLite Local Index (Versions, Metadata)"]
end
subgraph Processing["3. Document & PDF Processing Layer"]
C1["Tesseract OCR Engine"]
C2["PDF Utilities (Encrypt, Decrypt, Extract, Redact)"]
C3["Deduplication & Version Tracker"]
end
subgraph PrivacyGate["4. Review & Workspace Exchange"]
D1["Sensitive-term pattern review"]
D2["Redacted Workspace Exchange (JSON Schema v1)"]
end
subgraph UI["5. Presentation & Companion Integration"]
E1["PySide6 UnifiedMainWindow (Dark/Light Themes)"]
E2["SQLiteViewer (Index Inspector)"]
E3["ProSync Sibling Launcher"]
end
Sources --> CoreEngine
CoreEngine --> Processing
Processing --> PrivacyGate
PrivacyGate --> UI
sequenceDiagram
autonumber
actor User as Desktop User
participant UI as PySide6 GUI (UnifiedMainWindow)
participant Crawler as File Watchdog & Crawler
participant Index as SQLite Local Index
participant OCR as Tesseract OCR / PDF Engine
participant Gate as Datenschutzampel (Rule-Based Pattern Check)
participant Exchange as Redacted Workspace Exchange
User->>UI: Select document folder or file
UI->>Crawler: Scan path & calculate SHA-256 fingerprint
Crawler->>Index: Store file metadata & version state
opt Scanned Document / Image PDF
UI->>OCR: Trigger Tesseract OCR / text extraction
OCR->>Index: Update full-text search index (FTS)
end
User->>UI: Request document export / sharing
UI->>Gate: Run heuristic sensitive-term check
alt Sensitive Data Detected
Gate-->>UI: Warning / Redaction prompt (Datenschutzampel RED/YELLOW)
User->>UI: Apply PDF redaction / anonymize workspace
else Safe Document
Gate-->>UI: No configured pattern matched
end
UI->>Exchange: Export redacted workspace JSON (Schema v1)
Exchange-->>User: Schema-validated workspace export
| Area | Supported behavior | Boundary |
|---|---|---|
| Local storage | Application settings and search indexes are stored under the user profile by default; paths are configurable. | Local-first describes processing, not a network block. The optional module installer uses GitHub when invoked. |
| PDF passwords | The application does not persist PDF passwords in its settings; targeted regression tests cover this behavior. | This does not establish a general guarantee for every secret or external process. |
| Privacy review | Rule- and pattern-based checks flag possible sensitive terms and numbers. | This is not complete PII detection, legal review, or a GDPR compliance assessment; users should review matches and redactions. |
| Workspace exchange | Export uses a JSON schema and filters selected local paths and keys. | It is a limited interchange format, not a general guarantee that an archive is anonymous or risk-free. |
| OCR and PDF | Tesseract and Poppler can support OCR and PDF rendering when those external tools are available. | Source smoke tests do not verify complete native bundling, WACK certification, or Store distribution. |
| Permissions | ProFiler stores configuration under the user profile and runs with the calling process permissions. | No sandbox, egress block, or privilege drop is claimed. |
| Audience | Common task | Product boundary |
|---|---|---|
| People working with sensitive files | Search local documents and review pattern warnings before sharing. | The privacy checker is a rule-based aid, not complete personal-data detection or a legal/compliance review. |
| Researchers and archives | Index scans, search documents, and identify duplicates. | OCR needs the required external tools; source smoke tests do not certify a complete native distribution. |
| Small offices and freelancers | Organize invoices, contracts, and receipts locally and perform selected PDF operations. | Whether files remain local also depends on storage locations, operating-system services, and external components. |
| Power users | Work with folders, indexes, previews, keyboard operations, and optional sibling tools. | ProFiler does not control permissions of other processes or synchronization services. |
ProFiler focuses on local file management, search indexes, and selected OCR/PDF workflows. The projects below serve different workflows; this table does not claim a feature or security assessment of them.
| Workflow | Context |
|---|---|
| Local document search | ProFiler indexes user-selected folders and stores its search index locally. |
| Notes and LLM-assisted search | KnowledgeDigest is a separate tool; a ProFiler integration is not established. |
| Batch OCR and PDF preparation | PDFtoPDFocr and DokuZen are separate tools with different focuses. |
| General file management or cloud DMS | Operation, privacy, cost, and features vary by product and configuration; consult each product’s documentation. |
- Local SQLite File Index: Rapid indexing for folders, document collections, and versioned file entries.
- Full-Text Search Engine: Search across PDF, DOCX, TXT, RTF, images, spreadsheets, and source code.
- Tesseract OCR Integration: Automatic OCR workflow for scanned PDFs and image documents.
- Comprehensive PDF Workshop: Encrypt, decrypt, extract pages, redact text, and export sanitized documents.
- Cryptographic Deduplication: Fast SHA-256 fingerprinting to identify redundant duplicate files.
- Privacy review: Rule-based warnings for possible sensitive terms before sharing; inspect results manually.
- Cloud-placeholder handling: The crawler recognizes supported placeholder states; behavior depends on platform and file system.
- ProSync Companion Integration: Direct launcher bridge for synchronizing managed folder pairs.
- Redacted Workspace Exchange: Export and import portable workspaces via JSON Schema v1.
- Ergonomic Desktop UI: Native PySide6 interface with dark/light theme switching and system tray integration.
- Companion Utilities: Bundled SQLite database inspector (
SQLiteViewer.py) and Excel file importer.
ProFiler is the optimal solution when you require a private document management tool for:
- Maintaining searchable local archives of PDFs, Office documents, text files, and scanned receipts.
- Running OCR-assisted indexing on scans when required local tools are available.
- Detecting duplicate files and auditing version drift across deep directory structures.
- Handling PDF security operations (passwords, page extractions, redactions) in a single desktop app.
- Reviewing possible sensitive terms before sharing; this is not a legal or compliance assessment.
- Optionally launching the separate ProSync tool from the menu; SQLiteViewer is a separate script in this repository.
- Python 3.10+ (tested on Python 3.10, 3.11, 3.12, 3.13)
- PySide6
- Tesseract OCR (optional, required for image and scanned PDF OCR)
- Poppler utilities (optional, required for PDF rendering and page conversion)
Install runtime dependencies from PyPI:
pip install -r requirements.txt
python Profiler_Suite_V15.pyOn Windows, you can start the application directly via the bundled starter script:
START.batTo attempt a local Windows executable build, run:
build_exe.batThe script stops before PyInstaller unless the required files exist under runtime/tesseract/ and runtime/poppler/. It requires a clean Git checkout and uses BUILD_ROOT as a configurable local output directory.
When prerequisites are present, outputs include:
<BUILD_ROOT>/dist/ProFiler.exe<BUILD_ROOT>/release/SHA256SUMS.txt<BUILD_ROOT>/release/BUILD-PROVENANCE.json
This is a local build flow. The script does not publish to GitHub Releases, OneDrive, or the Microsoft Store.
| File Path | Functional Purpose |
|---|---|
%LOCALAPPDATA%\ProFilerSuite\profiler_config.json |
Active folder connections and database indexing settings |
%LOCALAPPDATA%\ProFilerSuite\profiler_settings.json |
UI preferences, theme selection, and optional tool paths |
%LOCALAPPDATA%\ProFilerSuite\search_config.json |
Configured search databases and indexing targets |
*.example.json |
Public, path-free configuration templates (never contain live data) |
PDF passwords are session-only and are deliberately excluded from persisted settings. The Excel importer is an optional administrative utility:
python -m pip install -e ".[excel]"
python import_excel_to_profiler.py --input INPUT.xlsx --database profiler.db --output imported| Tool File | Functional Description |
|---|---|
Profiler_Suite_V15.py |
Main desktop GUI application (PySide6) |
ProFiler_Datenschutzampel.py |
Standalone rule-based checks for possible sensitive terms; not complete PII detection |
SQLiteViewer.py |
SQLite database viewer for inspecting index tables |
import_excel_to_profiler.py |
Command-line utility for importing existing Excel file inventories |
indent_gui_checker.py |
Codebase development tool for checking GUI indentation integrity |
| Category | File Extensions | Capabilities |
|---|---|---|
| Documents | .pdf, .docx, .txt, .rtf |
Full-text indexing, metadata parsing, search, and preview |
| Images | .png, .jpg, .jpeg, .tiff, .bmp |
Metadata extraction, image preview, and Tesseract OCR text recognition |
| Spreadsheets | .xlsx, .xls, .csv |
Structure inspection and metadata indexing (Excel extra available) |
| Other Formats | Universal fallback | Indexed by filesystem attributes, file size, timestamps, and SHA-256 hash |
ProFiler is part of the file-bricks tool family under the open-bricks umbrella. A link does not imply a technical integration.
| Tool | Repository | Established relationship |
|---|---|---|
| ProSync | file-bricks/ProSync | Can be started as a separate program from an optional ProFiler menu item. Sync runs outside ProFiler. |
| SQLiteViewer | SQLiteViewer.py | Separate script in this repository for viewing SQLite databases. |
| KnowledgeDigest | file-bricks/knowledgedigest | Independent family tool for notes and knowledge search; no direct ProFiler integration established. |
| PDFtoPDFocr | doc-bricks/PDFtoPDFocr | Separate tool for batch OCR and searchable PDFs. |
| DokuZen | doc-bricks/DokuZen | Separate desktop tool for PDF workflows. |
| MediaBrain | doc-bricks/MediaBrain | Independent video/music library with playlists and history; no ProFiler integration established. |
Find other organization projects at file-bricks.
ProFiler itself is licensed under AGPL-3.0-only; see LICENSE.
THIRD_PARTY_LICENSES.md and THIRD_PARTY_LICENSES.txt list declared direct runtime and optional dependencies plus selected development/build tools, with links to upstream license sources. This is not a complete inventory of transitive packages or bundled binaries and is not a license-compatibility or legal review.
Before distributing a binary or Store package, review the actual artifacts, bundled components, license texts, and bundling terms separately. Existing Store files are preparation material and do not establish publication or certification.
ProFiler accepts private reports about security issues. When available, use GitHub Security Advisories. If that route is unavailable, use the alternative contact and process in SECURITY.md.
No fixed response, triage, or remediation timelines are promised. Investigation and fixes depend on reproducibility, severity, and maintainer availability.
ProFiler is for people who organize local documents and want to review possible sensitive terms before sharing. Its pattern checks do not assess legal requirements or establish GDPR compliance.
| Audience | Example need | Search terms |
|---|---|---|
| People with sensitive files | Review terms and patterns in selected files before sharing. | local document privacy review, desktop PDF redaction |
| Researchers and archives | Index scans, run OCR, and identify duplicates. | desktop PDF OCR, local full-text document search |
| Small offices and freelancers | Organize invoices, contracts, and receipts. | local document manager, SQLite desktop file index |
| Power users | Work with local folders, previews, and optional separate sibling tools. | PySide6 file management, SQLite document search |
These terms describe workflows, not privacy, legal, or security certification.
Run local development checks with:
python -m pytest -ra -v
ruff check .
python -m compileall -q .
git diff --check
python source_platform_smoke.pyThe source-platform-smoke.yml workflow runs compilation, the basis smoke, Linux/macOS smokes, and pytest on Ubuntu and macOS with Python 3.11. This does not establish Windows CI, the presence of OCR/Poppler binaries, native packaging, tray behavior, or Microsoft Store/WACK approval. Check current results in the Actions tab for the exact commit.
The privacy checker is a rule-based aid; review matches and any PDF redactions before sharing. ProFiler does not provide legal advice.
