Appearance
Settings File
LumiFind stores every user preference in a single JSON file: settings.json. This page documents settings keys LumiFind reads or manages, their types, defaults and purpose. Defaults can differ between Console setup, the GUI Setup Wizard, the Settings window, and backend fallbacks when a key is missing. 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.
WARNING
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
json
{
"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. The tables distinguish setup values from backend fallbacks when a key is omitted. GUI-specific differences are called out in descriptions. A few top-level keys (last_folder, last_updated) are also maintained automatically.
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. |
minimize_to_tray | boolean | false | Keep LumiFind running in the system tray when the main window is closed. |
last_backup_date | string | "" | Managed. Timestamp of the last backup. |
license_server_url | string | built-in endpoint | Optional advanced override for the license service URL. |
last_backup_directory | path string | unset | Managed. Last folder used for a backup. |
last_search_type | integer | unset | Managed. Remembers the last selected search type. |
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. |
doc_model_size | string | selected model size | Managed. Display size for the selected document model. |
image_model_size | string | selected model size | Managed. Display size for the selected image model. |
voice_model_size | string | selected model size | Managed. Display size for the selected voice model. |
INFO
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 (Console; GUI uses 10) | 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 (Console; GUI Setup Wizard and backend fallback use 25) | Analyze one frame every N seconds. Must be a positive integer (GUI wizard uses 25). |
object_confidence_threshold | number (0–1) | 0.5 | Minimum confidence for detected objects (GUI wizard uses 0.25). |
min_file_size_mb | number | 0 | Skip files smaller than this size during analysis. |
max_file_size_mb | number | 500 (backend fallback) | Skip files larger than this size. GUI Setup Wizard writes 250; Settings window defaults to 100. |
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 (Console and Setup Wizard; Settings window's missing-key display defaults to true) | 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 | 50 (backend fallback; 0 disables checkpoints) | 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. |
shared | boolean | false | Enable shared index locking for multiple LumiFind instances; may be enabled automatically when a shared lock is detected. |
DANGER
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 minimal example follows Console setup. It omits optional keys; when omitted, LumiFind uses the runtime fallbacks documented above.
json
{
"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,
"whisper_language_code": ""
},
"indexing_settings": {
"index_folder": "~/.lumifind/lumifind_db",
"db_file": "~/.lumifind/lumifind_db.sqlite3",
"thumbnail_folder": "~/.lumifind/thumbnails",
"models_folder": "~/.lumifind/models",
"image_cache_folder": "~/.lumifind/lumifind_db",
"hf_model_folder": "~/.cache/huggingface/hub",
"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"
}
}INFO
Note: Paths may be written either absolute or starting with ~/; LumiFind expands both. The GUI Setup Wizard uses image batch size 10, frame sample rate 25, maximum file size 250 MB, and date format DD.MM.YYYY. Console setup uses image batch size 5, frame sample rate 5, and date format YYYY-MM-DD. Backend fallback values may differ when a key is omitted.
Validating the file
After editing, always validate:
lf --console --validate-configThe check reports:
- All five required sections exist.
generic.languageis a string;index_folder,db_fileare string paths;file_formatsis a list.frame_detector_typeis a string andframe_model_enabledis a boolean (when present).frame_sample_rateis a positive integer.object_confidence_thresholdis 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-wizardor reinstall/reset from Settings.
