Skip to main content

Semantic Search

Semantic search lets you find notes by what they mean, not just by the words they contain.

Example: searching for "my thoughts on focus" might find a note you wrote about deep work, even if you never used the word "focus" in it.

Setting it up

Semantic search needs an embedding model. You set this up in Settings → AI Providers → Embeddings.

You need:

  1. An API URL (any OpenAI-compatible embeddings endpoint works: OpenAI, Ollama, a local model server)
  2. A model name (e.g. text-embedding-3-small for OpenAI, nomic-embed-text for Ollama)
  3. An API key (if your endpoint requires one)
  4. The embedding dimensions for your model

Common setups:

ProviderModelDimensions
OpenAItext-embedding-3-small1536
OpenAItext-embedding-ada-0021536
Ollama (local)nomic-embed-text768
Ollama (local)mxbai-embed-large1024

Once configured, click Fill Missing. Coeus generates embeddings for notes that do not have them yet. This runs in the background and can take a few minutes if you have a lot of notes.

After embeddings are configured, new and edited notes should usually get missing embeddings filled automatically in the background. Use Fill Missing any time you want to catch everything up manually.

Semantic search runs automatically when you press Enter in the search bar. You don't need to do anything special: just type a description of what you're looking for and press Enter.

The results are a mix of text matches and semantic matches, combined to give you the best of both.

Running locally

If you don't want to send your notes to an API for embeddings, run Ollama locally:

  1. Install Ollama
  2. Run ollama pull nomic-embed-text
  3. In Coeus settings, set the API URL to http://localhost:11434/v1, model to nomic-embed-text, and dimensions to 768

Your notes stay on your machine.

What if I skip this?

You don't need semantic search. Text search works well. The main thing you miss is the ability to find notes by loose descriptions. If your notes are well-titled, text search is often enough.