Skip to main content

Settings File

LumiFind stores every user preference in a single JSON file: settings.json. This page documents every key LumiFind reads, its type, default value and purpose. So, you can safely review, back up or hand-tune your configuration (for example on headless servers running Console mode).

File Location

Operating System Path Windows %UserProfile%\.lumifind\settings.json macOS / Linux ~/.lumifind/settings.json

The fastest way to open the folder is Settings → Open Settings Folder. For a full overview of the directory see Folders and Files.

Edit with care! Invalid values can prevent indexing or searching from working. Before editing: close LumiFind, keep a backup copy of the file, and run a validation afterwards (see Validating the file). Keys marked as managed are written automatically by the app and should not be edited by hand.

Structure Overview

{
  "generic": { ... },
  "model_info": { ... },
  "indexing_settings": { ... },
  "search_settings": { ... },
  "visual_settings": { ... }
}

All five top-level sections are required; the validator complains if any of them is missing. A few extra keys (last_folder, last_updated) are added automatically by the app.

Section: generic

Key Type Default Description language string "en" Interface language code. auto_detect boolean true Detect and use the operating system language on first run. fallback_language string "en" Fallback language for missing translations. auto_check_updates boolean true Check for updates when the application starts. advanced_mode boolean false Show advanced options in the Settings window. backup_include_thumbnails boolean true Include thumbnails when creating settings backups. last_backup_date string "" Managed. Timestamp of the last backup.

Section: model_info

Key Type Default Description doc_model_enabled boolean true Enable the document embedding model. doc_model_name string sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 Hugging Face model used for document embeddings. See default models and custom models. image_model_enabled boolean false Enable image search. image_model_name string openai/clip-vit-base-patch32 Hugging Face model used for image embeddings. voice_model_enabled boolean false Enable voice transcription and search. voice_model_name string openai/whisper-tiny Hugging Face Whisper model used for transcription. video_model_enabled boolean false Enable video search (audio track analysis). frame_model_enabled boolean false Enable frame detection (object detection inside videos/images). frame_detector_type string opencv_ssd_coco Object detector. Supported values include opencv_ssd_coco, detr, yolov8n, yolov8s. frame_model_size number | null null Optional override of the estimated download size shown in the interface. whisper_language_code string "" Force transcription language (e.g. "en", "tr"). Empty = auto-detect. hugging_face_token string "" Access token for gated or private Hugging Face models.

Feature switches are gated by your license. If a feature is not part of your license, enabling its switch has no effect.

Section: indexing_settings

Paths and files

Key Type Default Description index_folder path ~/.lumifind/lumifind_db Root folder holding all analysis data. db_file path ~/.lumifind/lumifind_db.sqlite3 SQLite database file tracking analyzed files. The GUI Setup Wizard may place it inside the index folder instead. thumbnail_folder path ~/.lumifind/thumbnails Folder for thumbnail images. models_folder path ~/.lumifind/models Folder where downloaded models are cached. image_cache_folder path = index folder Optional separate location for the image embedding cache. file_formats list of strings (see example) File extensions to analyze, e.g. ".pdf", ".jpg".

Analysis parameters

Key Type Default Description doc_batch_size integer 1000 Documents processed per batch. image_batch_size integer 5 Images processed per batch (GUI wizard uses 10). chunk_size integer 500 Text chunk size in characters. chunk_overlap integer 50 Overlap between consecutive text chunks. voice_chunk_duration integer 30 Audio chunk length in seconds. frame_sample_rate integer 5 Analyze one frame every N seconds. Must be a positive integer (GUI wizard uses 25). frame_sampling_enabled boolean true Enable frame sampling during video indexing. object_confidence_threshold number (0–1) 0.5 Minimum confidence for detected objects (GUI wizard uses 0.25).

Feature toggles

Key Type Default Description process_email_attachments boolean true Index attachments found in email files. pdf_ocr_fallback boolean false Use OCR when a PDF contains no extractable text. See Dealing with scanned documents. treat_images_as_documents boolean false OCR images and index them as documents. See Dealing with documents as images. enable_exif_geocoding boolean true Reverse-geocode GPS coordinates from EXIF metadata. enable_thumbnails boolean true Generate thumbnails for analyzed images. auto_export_logs boolean false Save session logs to the logs folder after each run. show_file_info boolean false Show detailed file information in results.

Maintenance and file watching

Key Type Default Description file_watching_enabled boolean false Watch folders for changes and update the index automatically. file_watching_interval integer 60 Polling interval in seconds. checkpoint_interval integer 0 Save an indexing checkpoint every N files; 0 disables checkpoints. oldest_file_date date string "1970-01-01" Skip files created before this date while indexing.

Managed keys — do not edit: indexed_folders, excluded_folders, tracked_files (lists maintained by the app) and previous_doc_model (used internally during model changes).

Section: search_settings

Key Type Default Description max_results integer 100 Maximum number of results returned per search. max_results_per_file integer 1 Maximum matches returned per file. min_score number 0 Discard results below this similarity score. use_metadata_mode integer 0 How image search balances metadata against visual content: 0 = balanced (default), 1 = prioritize metadata filters, 2 = prioritize visual matching. image_top_k integer 5 Number of candidate images considered per query stage. metadata_boost_weight number 0.3 Weight given to metadata matches when ranking. min_file_size_mb number 0.0 Ignore files smaller than this size. max_file_size_mb number 100.0 Ignore files larger than this size (GUI wizard uses 250). oldest_file_date date string "1970-01-01" Exclude files created before this date from results. file_formats list of strings (mirror of indexing) Restrict searches to these extensions.

Section: visual_settings

Key Type Default Description log_level string "INFO" Logging verbosity (e.g. DEBUG, INFO, WARNING). date_format string "YYYY-MM-DD" Date display format (GUI wizard uses DD.MM.YYYY). time_format string "HH:mm:ss" Time display format. file_size_unit string "MB" Preferred unit for file sizes. show_thumbnails boolean true Show thumbnails in result lists. show_original_images boolean false Show original images instead of thumbnails where possible. add_timestamps boolean true Display timestamps next to entries.

Example: minimal settings.json

This is what Console mode's guided setup produces:

{
  "generic": {
    "language": "en"
  },
  "model_info": {
    "hugging_face_token": "",
    "doc_model_enabled": true,
    "doc_model_name": "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2",
    "image_model_enabled": false,
    "image_model_name": "openai/clip-vit-base-patch32",
    "voice_model_enabled": false,
    "video_model_enabled": false,
    "frame_model_enabled": false,
    "frame_detector_type": "opencv_ssd_coco",
    "frame_model_size": null
  },
  "indexing_settings": {
    "index_folder": "~/.lumifind/lumifind_db",
    "db_file": "~/.lumifind/lumifind_db.sqlite3",
    "thumbnail_folder": "~/.lumifind/thumbnails",
    "models_folder": "~/.lumifind/models",
    "file_formats": [WORK".txt", IN".md", PROGRESS]".pdf", ".docx"],
    "doc_batch_size": 1000,
    "image_batch_size": 5,
    "chunk_size": 500,
    "chunk_overlap": 50,
    "pdf_ocr_fallback": false,
    "treat_images_as_documents": false,
    "auto_export_logs": false,
    "show_file_info": false,
    "enable_exif_geocoding": true,
    "frame_sample_rate": 5,
    "object_confidence_threshold": 0.5
  },
  "search_settings": {
    "max_results": 100,
    "max_results_per_file": 1,
    "min_score": 0,
    "use_metadata_mode": 0,
    "file_formats": [".txt", ".md", ".pdf", ".docx"],
    "min_file_size_mb": 0.0,
    "max_file_size_mb": 100.0
  },
  "visual_settings": {
    "log_level": "INFO",
    "date_format": "YYYY-MM-DD",
    "file_size_unit": "MB"
  }
}

Note: Paths may be written either absolute or starting with ~/; LumiFind expands both. The GUI Setup Wizard creates the same structure but may pick different initial values for a few keys (batch sizes, sampling rate and date format).

Validating the file

After editing, always validate:

lf --console --validate-config

The check reports:

    All five required sections exist. generic.language is a string; index_folder, db_file are string paths; file_formats is a list. frame_detector_type is a string and frame_model_enabled is a boolean (when present). frame_sample_rate is a positive integer. object_confidence_threshold is a number between 0 and 1. The whole file is valid JSON and fully serializable.

    Exit code 0 means valid, 1 means problems were found (details printed to the console).

    Resetting to defaults

      Console mode: run lf --console --setup, or choose menu option Settings (create/show) → Create/Reset. GUI: re-run the Setup Wizard via --welcome-wizard or reinstall/reset from Settings.