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": [".txt", ".md", ".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.