Skip to content

Configuration

Virgile Thonnier edited this page Jul 17, 2026 · 2 revisions

Configuration

All settings are edited in Settings inside the app, and persisted as JSON at:

%APPDATA%\com.virgi.sensetree\settings.json

The file is written atomically and is tolerant: if it ever becomes corrupted, SenseTree logs a warning and falls back to defaults instead of refusing to start. Unknown/missing fields fall back to sensible defaults (forward/backward compatible).

Structure

settings.json has five sections: embedding, reasoning, vision, indexing, prompts.

embedding

Field Type Meaning
mode "local" | "openai" local = built-in ONNX engine (fastembed). openai = an OpenAI-compatible /v1/embeddings endpoint.
model string fastembed model id (local) or remote model name (openai).
base_url string Server base URL in openai mode (e.g. http://localhost:11434/v1).
api_key string Optional bearer token (empty for most local servers).
dimensions number Vector size — must match the model (e.g. 384, 768, 1024).
use_gpu bool Try CUDA for the local engine, with graceful CPU fallback.

Defaults: local multilingual-e5-small, 384-d, CPU.

reasoning and vision

Both are OpenAI-compatible chat endpoints with the same shape:

Field Type Meaning
base_url string e.g. http://localhost:11434/v1 (Ollama), http://localhost:1234/v1 (LM Studio), or a LAN IP.
model string Model name as the server expects it.
api_key string Optional bearer token.
enabled bool Turn the slot on/off.

Defaults: reasoning llama3.1:8b (enabled); vision moondream (disabled — vision is opt-in because a multimodal model is often absent by default).

indexing

Field Type Default Meaning
roots string[] [] Folders watched and indexed.
chunk_size number 1000 Target characters per text chunk.
overlap number 200 Overlap between consecutive chunks.
batch_size number 32 Embedding batch size (throughput vs. memory).
max_file_mb number 50 Files larger than this are indexed by context only (not fully extracted).
block_bias number (0–1) 0.5 Folder classification tendency: 0 = very recursive (explore everything), 1 = very block (aggressively group technical folders). See Indexing Pipeline.

prompts

Seven overridable system prompts. Leave a field empty to use the built-in default. This is how you tune the "extraction of meaning" without recompiling — see the dedicated Prompts page. The fields are: folder_classify, folder_describe, file_extract, vision_caption, vision_ocr, chat_system, reorganize.

Changing models

  • Changing the embedding model or its dimensions invalidates existing vectors (different models produce incompatible vector spaces). SenseTree detects this on save and performs a full re-index: it updates the vector dimension, clears the vector store, resets the index, and re-scans the roots.
  • Changing the block_bias slider or the folder_classify prompt makes SenseTree forget prior folder classifications so your new preference actually takes effect on the next scan (it clears folder profiles and re-scans).
  • Changing reasoning/vision takes effect immediately for new chat/description/caption calls — no re-index needed.

Providers cheat-sheet

Runner Typical base_url Notes
Ollama http://localhost:11434/v1 Pull models with ollama pull <name>; the catalog resolves hf.co/... GGUF names for you.
LM Studio http://localhost:1234/v1 Enable the local server; the catalog resolves lms get install names.
Home server / LAN http://192.168.x.y:11434/v1 Any OpenAI-compatible server on your network.
External API provider URL Set api_key. Note this sends content off your machine.

More detail, plus per-hardware model recommendations, in Models & Providers.

Clone this wiki locally