Training
Private knowledge repositories built from your files, pages and notes — indexed and searched entirely on your own machine.
Training is the feature, reached from the app's action grid and top bar. A Mind is one repository of knowledge inside it. You can keep as many Minds as you like and switch between them; the name matches the folder names on disk and the MCP tools.
Training, and what a Mind is
Training is where your own knowledge lives. Inside it, a Mind is a single private repository: you add documents, web pages and notes; Triplo processes them into searchable notes on your disk. When a Mind is selected, every prompt is quietly searched against it and only the relevant passages are attached before sending.
This is the difference between pasting a 40-page handbook into a prompt and asking a question that the handbook happens to answer. The first is expensive, often too large to send at all, and buries the answer. The second sends two paragraphs.
Why not just attach the file?
| Attachment | Mind | |
|---|---|---|
| How much is sent | The first 5,000 characters | Only the relevant passages |
| Number of documents | What you attach each time | Hundreds, searched at once |
| Persistence | That one prompt | Every prompt, until deselected |
| Finding the answer | The model reads what fits | Retrieved by meaning before sending |
| Best for | One document, right now | A body of knowledge you return to |
Typical Minds: your product documentation, a client's brand guidelines, your company's policies, a codebase's architecture notes, research for a book, past proposals you want to write in the style of.
The search never leaves your machine. Indexing and retrieval run locally, using a model bundled with the app. Only the passages that were selected travel onward — and only to whichever model you chose. With a local model, nothing leaves at all.
Creating a Mind Paid plan
How to reach it. Action grid → Training → Add a Mind….
The name becomes its folder name, so keep it short and specific — Acme Brand Guidelines, Internal API.
The Mind must exist on disk before it can receive anything. Saving creates its folder structure.
Attach files, paste URLs, or type notes directly. See below.
Progress is shown live. Documents become searchable within seconds; the metadata pass finishes in the background.
Choose the Mind from the top bar. Only then does it ground your prompts.
Scope beats size. One Mind per coherent body of knowledge, not one giant Mind for everything. Retrieval competes: mixing your brand guidelines with your API docs means a question about tone can surface an endpoint reference. Several focused Minds, switched deliberately, work far better.
Adding knowledge
Four routes in, all ending in the same pipeline.
files/ folder.The INGEST folder
Every Mind has an INGEST/ folder inside it. Anything you drop there is picked up automatically — no need to open Triplo at all.
This is the route to use in bulk. Copy in a folder of PDFs, point a scanner's output at it, or have a script deposit exports there nightly. Triplo watches the folder and processes what appears.
Add a folder to your Dock or file manager sidebar pointing at a Mind's INGEST/. Filing a document into your knowledge base then costs one drag.
How ingestion works
Understanding this explains most of what you will see in a Mind's folder, and why documents become searchable long before they look finished.
Phase 1 — prepare (fast)
Text is extracted, minimal metadata is written to the top of the file, and it lands in vault/. The search index picks it up straight away. The document is usable at this point.
Phase 2 — enrich (background)
A language model reads the document and writes back structured metadata: a proper title, a summary, tags, named entities, and a confidence rating. The file is renamed to match its real title, and the index is refreshed.
This is what makes retrieval good rather than merely functional — the summary and tags give the search far more to match against than raw body text.
Enrichment is the one step that sends your document text to Triplo's endpoint, and it happens once per document. If it fails — no connection, a timeout — the document stays indexed and searchable with its basic metadata. Nothing is lost; retrieval is just less sharp for that file.
Controls in the Mind editor
INGEST/. Use after dropping files in by hand rather than waiting for the watcher.vault/. Use after editing vault notes directly.What ends up on disk
Vault filenames carry a prefix showing where the note came from: FILE_ from an imported file, CRWL_ from a URL, USER_ from notes you typed, EMAIL_ from mail.
The search index is not in there. Vectors live outside your content, under Vectors/<mind-id>/ in the user-data directory, because they are a build artefact rather than something you wrote. Copying a Mind's folder to another machine therefore carries the knowledge but not the index — Triplo rebuilds it on first use. Deleting the Vectors/ folder is safe and costs only a re-index.
Check failed/ occasionally. A file lands there when its text could not be extracted — most often a scanned PDF with no text layer, or a password-protected document.
How search works
Triplo searches by meaning, not keywords. A question about "onboarding a new starter" finds a document titled "Employee induction procedure" even with no words in common.
This runs through a small embedding model bundled inside the application — about 52 MB, quantised to run on CPU. It is never downloaded at runtime: it ships with the app, so a Mind works on a machine that has never been online.
Very long documents are indexed from the front. Only the first 100,000 characters of a note's body are embedded. A 400-page export or a huge spreadsheet dump would otherwise produce thousands of passages and an unwieldy index; the cap keeps indexing quick and the beginning of a document, which usually carries the subject matter, is what gets indexed.
Grounding a prompt
With a Mind selected, every prompt goes through the same short sequence:
- Triplo works out how much room is left in your model's context window, after your conversation and prompt.
- It searches the Mind with your prompt as the query.
- The best passages are trimmed to fit that budget.
- They are inserted as a system message ahead of your prompt.
- The sources are recorded so the response can show where it drew from.
The budget is calculated per model. A model with a 200,000-token window receives far more grounding than one with 8,000 — automatically, with nothing to configure. This is a concrete reason to prefer a large-context model when working with a substantial Mind.
Checking what was actually used
Look for the Grounded in N sources chip below the response. Expand it for each source and its relevance score; click one to open the file. No chip means the Mind contributed nothing — the answer came from the model alone. Worth checking before trusting an answer you expected to be grounded.
Pinning a Mind to a prompt
A SmartPrompt that only makes sense against a particular Mind can carry it as a Magnet. Triplo switches to that Mind for the prompt and restores your selection afterwards.
Vault reference
Vault notes are plain Markdown with YAML frontmatter. You can read and edit them in any editor; changes are re-indexed automatically.
| Field | Meaning |
|---|---|
title | Display name. Also used to rename the file after enrichment. |
entity_type | What kind of thing this is — Policy, Note, Article, Specification. |
source_type | Where it came from: file, crawl, email, manual. |
source_authority | How authoritative the source is. unknown until enrichment decides. |
confidence | low, medium or high. Numeric values are converted. |
memory_tier | Defaults to reference. Used to distinguish durable knowledge from working notes. |
tags, entities | Extracted by enrichment; strong signals for retrieval. |
summary | A short abstract, indexed alongside the body. |
enriched | false until phase 2 completes. Files marked false are picked up for enrichment. |
The <<<>>> marker separates generated metadata from the original body. Everything after it is your content, untouched.
index.md
A generated catalogue at the root of each Mind: a table of every note with type, tags, tier and path, plus tag frequencies. Regenerated on every change. It is a build artefact — edit the notes, not this.
Editing vault notes by hand
Entirely supported and sometimes the fastest fix. Correct a wrong title, add tags to something that is not being found, or delete a note that should not be there. Run Re-index afterwards if the change does not show up within a few seconds.
To force a document through enrichment again, set enriched: false and run Process.
Limits & gotchas
- One Mind at a time. Grounding uses the selected Mind only. Switch deliberately, or pin with a Magnet.
- Creating a Mind does not select it. A common early confusion — nothing is grounded until you choose it in the top bar.
- Inactive Minds do not ground. The toggle in the drawer also stops its watchers.
- Only definitions sync between devices. A shared Mind carries its name, tags and notes — not the ingested documents or the index. Rebuild the knowledge on each machine, or use Backup and Restore.
- Scanned PDFs need OCR first. With no text layer there is nothing to extract, and the file goes to
failed/. - Deleting a Mind deletes its folder, including originals in
files/. Back up first if those are the only copies. - Enrichment needs a connection. Offline, documents still ingest and index; they simply stay unenriched until you are back online and run Process.
- The first search after launch is slower while the embedding model loads. After that it is fast.
Sharing a Mind with other AI tools
Minds are not only for Triplo. The built-in MCP server lets any MCP-compatible client — Claude Code, Cowork, and others — list your Minds, read their structure, search them, read their entries in full and add notes to them, over a local token-protected endpoint.
That turns a Mind from a feature of one app into a knowledge layer every AI tool on your machine can reach. See MCP Server.
Two open-source tools power Training on Triplo AI. Both run entirely on your machine, with no network calls of their own.
Retrieval is handled by vectra, built by Steven Ickman and released under the MIT licence: a local vector database for Node.js that relies on ordinary files on your disk rather than a hosted service. Triplo maintains one index per Mind, pins the version to each release, and ships it directly inside the app.
Passages and queries are converted into vectors using Xenova/all-MiniLM-L6-v2, released under Apache 2.0—an ONNX conversion, quantised to 4-bit, of sentence-transformers/all-MiniLM-L6-v2. This roughly 52 MB model is bundled with the app and runs through Transformers.js (Apache 2.0) on ONNX Runtime (MIT). The copyright notices, licence texts, and modification statements required by these licences are included with the Triplo AI installer.
None of this is licensed per seat, per document, or per query. Indexing and search run entirely on your machine; enrichment is the one step that leaves it, once per document.