-
Notifications
You must be signed in to change notification settings - Fork 0
Prompts
Every AI stage in SenseTree is driven by a system prompt, and all of them are yours to change. This is how you tune "meaning extraction" without recompiling — and how you fix a model that drifts into the wrong language or adds preamble to everything.
Edit them in Settings → Prompts; they are stored under prompts in settings.json.
An empty field means "use the built-in default." Override only what you want; clear a field to revert.
| Key | Drives | Output contract | In the UI |
|---|---|---|---|
folder_classify |
Recursive vs block decision for a folder | Strict JSON {"mode":"block"|"recursive"}
|
✅ |
folder_describe |
One-sentence description of a block folder | A single plain sentence | ✅ |
file_extract |
Pulling meaning out of an unknown file type | A summary, or exactly NO_CONTENT
|
✅ |
doc_qualify |
Qualifying a document: what it is + key facts | 2–4 factual sentences, no preamble | |
context_guess |
Guessing an unreadable file's nature from its path and neighbours | 1–2 sentences, hedged if uncertain | |
vision_caption |
Captioning an image | 1–2 descriptive sentences | ✅ |
vision_ocr |
Reading a rendered PDF page | One sentence on what the page shows, then the transcribed text | ✅ |
video_describe |
Describing what a video shows | Factual, concise, no speech transcription | ✅ |
chat_system |
Extra instructions for the chat agent | Free text — appended to, not replacing, the agent rules | ✅ |
reorganize |
The one-shot reorganization planner | Strict plan JSON (summary + operations) |
✅ |
doc_qualify and context_guess are fully honoured by the backend but have no field in Settings yet. Override them by editing settings.json directly.
They are the accumulated conventions of the app, and worth reading before replacing:
-
folder_classify— chooserecursivewhenever there is exploitable meaning inside (documents, courses, projects, notes, source code, personal photos). Chooseblockonly for technical/opaque bundles: virtualenvs, dependencies, app bundles, DAW sample packs, caches, build artifacts, folders of opaque binaries. Extrapolate the folder's role from its full path — the parent gives essential context. When in doubt, recursive. -
doc_qualify— say what it is first (invoice, ID card, contract, course, article, bank statement, CV, correspondence), what or whom it relates to, then the key facts (dates, amounts, subject, people, organisation). Concrete and factual, no introductory formula. -
context_guess— infer the most likely nature from name, extension, location and neighbours (VM disk image, archive, executable, cache, database, a program's project file, backup). Stay factual; phrase uncertainty as a hypothesis. -
vision_ocr— describe what the image shows in one sentence before transcribing. This exists because a transcription alone loses what a page depicts: a sheet of six passport photos next to a till receipt was summarised as the receipt, and the document was filed as "photo-booth receipt" instead of "identity photos". The model has the image in front of it — ask for both. -
video_describe— what is seen, where, who or what is present, the actions, any on-screen text. Explicitly not what is said: the soundtrack is handled separately by transcription. -
chat_system— your text is added under "additional instructions" after the built-in agent rules (which tools exist, use them before answering, cite files,propose_actionsexecutes nothing,rememberfor durable facts). You extend the agent; you do not silence its safety rules.
-
Keep the output contract.
folder_classifyandreorganizeare parsed as strict JSON. Loosen the "respond only in JSON" instruction and classifications or plans get dropped. - Keep path faithfulness. For the planner, keep the rule that paths must be exactly those provided — that is what stops the model inventing files. (Out-of-root paths are refused by the backend regardless, but an invented in-root path just fails at apply time.)
- Force a language, ban preamble. The most common real fix. Adding "answer in English, no preamble" cures a model that drifts or prefixes everything with "Sure! Here is…". The built-in defaults are written in French; if your reasoning model answers better in English, translating them is a legitimate and effective change.
-
Shorter prompts, cheaper indexing.
doc_qualifyandcontext_guessrun once per file — thousands of times. Every sentence you add is paid for on every file. - Test on a folder, not a library. Change a prompt, re-qualify a single folder (Explorer → qualify), inspect the results, then commit to it.
| Prompt | To apply it |
|---|---|
chat_system, reorganize
|
Immediate — next message. |
vision_caption, vision_ocr, video_describe, file_extract, doc_qualify, context_guess
|
Applies to files indexed afterwards. Re-index a path, or use per-file / per-folder qualification, to apply it retroactively. |
folder_classify |
Changing it forgets existing folder classifications on save. Save, then Re-index. |
One exception worth knowing: a pinned sense — one you or the agent corrected via requalify — is never regenerated, whatever the prompt says. That is the point of pinning.
They are the single source of truth in the app: get_default_prompts returns them, Settings displays them as placeholders, and the backend falls back to them whenever an override is empty or whitespace-only.
Getting started
Using it
- Configuration
- Models & Providers
- Semantic Search
- Image Search
- AI Chat & Agent
- Gardener
- Prompts
- MCP Servers
Under the hood