Similar Notes

by Young Lee
5
4
3
2
1
Score: 52/100

Description

The Similar Notes plugin finds and recommends notes that are semantically related to what you're currently writing, using language models for real-time analysis. It displays up to five similar notes at the bottom of your note, making it easier to spot hidden connections in your ideas without relying on exact keyword matches. The plugin is self-contained with its own vector database and gives you the choice between built in Hugging Face models or connecting to Ollama for custom embeddings. No external cloud API is needed, and it smartly ignores notes already linked from your current document.

Reviews

No reviews yet.

Stats

103
stars
9,431
downloads
10
forks
354
days
8
days
8
days
4
total PRs
0
open PRs
1
closed PRs
3
merged PRs
48
total issues
11
open issues
37
closed issues
0
commits

RequirementsExperimental

  • Internet connection for initial model download

  • Local Ollama installation for custom embedding models (optional)

Latest Version

8 days ago

Changelog

Added

  • Export similar notes for active note (#47): New command Similar Notes: Export similar notes for active note writes the current note's results to .obsidian/plugins/similar-notes/similar-notes-export.json, letting external tools (e.g. coding agents) reuse the plugin's similarity search. Each result carries path, title, score, excerpt, and linked.

Changed

  • Already-linked notes now appear in Similar notes: notes the active note already links to are no longer hidden — they show ranked by score alongside everything else, marked with a small muted "linked" tag.
  • Built-in models on mobile now warn about memory use: on lower-memory phones, built-in on-device models can crash Obsidian, so the Built-in model settings now recommend a remote provider (Ollama, OpenAI, or Gemini). High-memory phones and tablets can still use built-in models.

Improved

  • Bug reports now include CPU and memory: the "Copy environment info" output adds CPU core count, architecture, and total RAM (desktop only) to help diagnose memory- and performance-sensitive issues.

Fixed

  • Built-in model no longer crashes when indexing large notes (with GPU acceleration off): a large note's chunks are now embedded in smaller batches instead of one pass that could exceed the on-device engine's fixed memory limit (previously surfaced as a bare number like 8934496 in Errored files). Retry affected notes after updating.
  • Better recommendations for long, multi-topic notes on large-context models: chunk size is now a focused semantic size regardless of the model's context window, so a single topic's signal is no longer averaged away in coarse chunks. Run a full reindex to apply the finer chunking.
  • Ribbon icon hidden state now sticks across restarts (#50): a hidden Similar Notes icon no longer reappears on every launch, and clicking the icon during startup no longer opens an empty pane.
  • "Copy environment info" now reports the correct provider and settings: the report reads your settings at click time (no more stale model after switching), and shows the actual provider/model for OpenAI and Gemini instead of always Built-in (...), with a Server URL line to distinguish OpenAI, OpenRouter, and local servers.

README file from

Github

Similar Notes for Obsidian

"Buy Me A Coffee"

Find semantically similar notes using AI. Choose local models for privacy or cloud APIs for flexibility.

Similar Notes View

As you write, similar notes appear at the bottom of your current note.

Similar Notes Demo

Press Cmd+Shift+O (or Ctrl+Shift+O) to search your vault by meaning, not just keywords.

Semantic Search Demo

Features

  • Flexible Options: Run locally (100% private) or use cloud APIs like OpenAI
  • Mobile & Desktop: Built-in models work on iOS, Android, and all desktop platforms
  • OpenAI Support: Use OpenAI embedding models or any OpenAI-compatible API
  • Ollama Support: Connect to custom models via Ollama (desktop only)
  • No Setup Required: Built-in models work out of the box, no API keys needed

Getting Started

  1. Install the plugin
  2. The default model will download automatically (one-time, ~30MB)
  3. Your notes will be indexed in the background
  4. Similar notes will appear at the bottom of your current note

Progress appears in the status bar.

Model Options

Built-in Models (Mobile & Desktop)

Supports any Sentence Transformer model from Hugging Face that ships ONNX weights. Local processing, no API keys required.

Recommended:

  • all-MiniLM-L6-v2 (English, default)
  • paraphrase-multilingual-MiniLM-L12-v2 (multilingual)

Custom models: The plugin uses Transformers.js, which requires ONNX weights. Many Hugging Face repos only ship PyTorch / safetensors and will fail to load. For other models, look for an ONNX-converted version under the onnx-community organization, or use the Ollama / OpenAI providers instead.

Mobile note: Large models may cause crashes due to memory limits. Consider using the default model or OpenAI API on mobile.

OpenAI / Compatible API

Supports any OpenAI-compatible embedding API.

Recommended:

  • text-embedding-3-small

Note for CJK users: For Chinese, Japanese, and Korean text, multilingual models like bge-m3 (via Ollama) often outperform OpenAI models in both quality and token efficiency.

Using OpenRouter

OpenRouter offers embedding models from multiple vendors through one OpenAI-compatible API, often at very low cost (a whole vault typically indexes for well under a dollar). Configure it through the OpenAI provider:

  1. Model provider: OpenAI API
  2. Server URL: https://openrouter.ai/api/v1
  3. API Key: your OpenRouter key (sk-or-...)
  4. Model: Custom model..., then enter the model ID from OpenRouter (e.g. perplexity/pplx-embed-v1-0.6b, qwen/qwen3-embedding-8b, or openai/text-embedding-3-small)
  5. Use Test connection to verify before Load & Apply.

Privacy note: OpenRouter routes your note content to the model vendor, and each vendor has its own data retention policy. OpenRouter accounts have a Zero Data Retention (ZDR) option that restricts routing to providers who confirmed they do not store your data; requests that would hit a non-ZDR endpoint fail with an error instead of going through silently. If your vault contains sensitive material, enable it once at openrouter.ai/settings/privacy (Data Policies, Zero Data Retention) before indexing. It applies account-wide, so no plugin configuration is needed. (Thanks to David Torrens for testing OpenRouter and researching the ZDR setting.)

Ollama (Desktop Only)

Supports any Ollama embedding model.

Recommended:

  • nomic-embed-text (English)
  • bge-m3 (multilingual)

Agent Usage

The active note's similar-notes results can be exported to a JSON file, so an external coding agent can reuse the plugin's similarity search without understanding embeddings or plugin internals:

  1. Open a note in Obsidian.
  2. Run the command Similar Notes: Export similar notes for active note.
  3. Read the results from .obsidian/plugins/similar-notes/similar-notes-export.json.

Output format (success):

{
  "version": 1,
  "ok": true,
  "sourcePath": "Projects/My Note.md",
  "generatedAt": "2026-06-09T12:34:56.000Z",
  "results": [
    {
      "path": "Knowledge/Related Note.md",
      "title": "Related Note",
      "score": 0.82,
      "excerpt": "similar content..."
    }
  ]
}

On error (e.g. no active markdown file, search failure), the same file is written with { "version": 1, "ok": false, "code": "...", "error": "..." }, where code is NO_ACTIVE_FILE or SEARCH_FAILED.

For driving the command from an agent (CLI flow, validation tips, drop-in skill snippet), see docs/agent-export.md.

Technical Details

  • Transformers.js: Runs Hugging Face models directly in Obsidian
  • WebGPU: GPU acceleration on desktop, automatic CPU fallback
  • Orama: Built-in vector database for fast search
  • Web Workers: All processing runs in background threads

Multi-Device Usage

This plugin stores all data locally in IndexedDB, which is device-specific storage that does not sync across devices.

What this means:

  • Each device maintains its own independent index
  • Obsidian Sync, iCloud, Syncthing, or any other file sync tool will not sync the plugin's data
  • When you open your vault on a new device, the plugin will automatically index your notes from scratch

This is by design - IndexedDB provides fast, reliable local storage that doesn't interfere with vault syncing.

License

MIT

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.