readme/apps/ai_semantic_search.md
Joplin can index your notes so they can be searched by meaning rather than just by exact words. For example, searching for "the note about pet sitters for my dog" can find a note titled "Vet contacts" if its body mentions someone who walks dogs, even when "pet sitter" never appears in either.
This is sometimes called semantic search or vector search. It complements Joplin's regular keyword search — it doesn't replace it.
When you enable AI, Joplin downloads a small language model (around 140 MB) onto your computer. From then on it runs in the background, reading each note and storing a numerical fingerprint of it in a local index. When you search, your query gets the same treatment and Joplin returns the notes whose fingerprints are closest.
All of this runs entirely on your device. The model is local; no note content is sent to a cloud service. The index is also local — it is not synced — so each device builds its own.
The first time you do this Joplin downloads the model. After that it starts indexing your notes in the background.
Settings → AI shows the indexer's state and how many notes have been processed so far. The first time, indexing the entire vault can take a while — Joplin processes 100 notes every 5 minutes to keep the load on your machine very small. A 10 000-note vault takes roughly 8 hours of background work. You can leave it running and use Joplin normally; there's no rush.
After the initial scan, new and edited notes are picked up within a few minutes.
There is no dedicated "semantic search" box in Joplin's UI today. Semantic search is exposed in two ways:
joplin.ai.search() to look up notes by meaning. The plugin's description tells you whether it uses this.semantic_search_notes tool.If you want to try it directly, the MCP server is the easiest path.
If you change the embedding model — for example by switching providers — Joplin wipes the index and rebuilds it. Fingerprints from different models aren't comparable, so a clean rebuild is the only safe option. The indexer status panel shows what's happening.
| Platform | Embeddings work? |
|---|---|
| macOS (Apple Silicon) | Yes |
| macOS (Intel) | No — the underlying runtime isn't shipped for this architecture; AI chat still works. |
| Windows (x64, ARM64) | Yes |
| Linux (x64, ARM64) | Yes |
| Mobile, CLI | No — semantic search runs only on the desktop app. |
On platforms where embeddings don't work, the indexer stays paused and any plugin or MCP tool that needs it shows a clear error rather than silently returning nothing.
You can keep AI chat on but turn off the indexer by unticking Enable the embeddings indexer in Settings → AI. The model stays downloaded but no further indexing happens. Existing index data stays on disk; remove the AI profile data manually if you want to delete it completely.