TL;DR:
I built an AI/LLM-powered “related notes” plugin for Obsidian. It seems to work, but who knows? There’s a video tour, and the code is in a GitHub repository.
I’ve been using Obsidian for a few years now, and have always wanted a good “Related Notes” plugin to help me find things that overlap with what I’m working on - based on the content itself, not metadata or links. Haven’t had any luck so I kind of gave up.
Yesterday, a faculty member nudged me to try Google’s new Antigravity IDE. It’s an AI-powered coding application, with Google’s Gemini baked right in. Kind of like Claude Code, but with an actual interface and maybe more generous limits1?
I downloaded Antigravity and just gave instructions into the chatbot sidebar. I forget the exact prompt, and it won’t let me scroll back that far2, but it was something like:
I want to build a plugin for Obsidian that will use an LLM (locally running in Ollama) to index all of my notes and make suggestions for notes that are related to the current note. The list should be displayed in a sidebar.
It chewed for a bit, created some typescript and other files in a temp working directory - I hadn’t even created a project directory yet - and got started. After some back-and-forth, it told me how to compile the typescript projects into the javascript that would be used by Obsidian.
% npm run build
I then created an obsidian-related-notes folder in my Obsidian vault’s .obsidian/plugins/ directory, turned it on, and hey presto. It wouldn’t run. So I checked the debug log, fed that to Antigravity3/Gemini, and it came up with a fix. Recompile, Re-copy to plugin directory, Disable/reactivate the plugin. (this process was repeated many, many times through troubleshooting and debugging). And it worked. I fed it ideas for improvements, I tested them out, and we wound up with a version that works pretty well.
Obsidian Related Notes (AI) plugin
screenshot of the Obsidian Related Notes (AI) plugin, showing the settings screen and kinda showing the plugin running in the sidebar
Image by D'Arcy Norman
I have no idea how it actually works, though. It’s using nomic-embed-text4 to calculate vectors for each note. I know very vaguely what that means5. And then it compares the vectors for the current note with the vectors in the data file. Somehow.
On my M2 Macbook Air with 16 GB of RAM, it takes about 30 minutes to run the full indexing process on my 6,302 notes. Incremental updates to the index take seconds. BUT - you need to leave Ollama running for indexing to take place.
A quick video tour of the plugin.
It seems to work. I don’t know if it’s useful, or if I’ll keep using it or keep updating it (or keep telling Antigravity to tell Gemini to update it). There’s no warranty, support, or anything.
I’ve put it in a GitHub repository so it’s available if you want to try it out.
especially considering it’s (currently) free, but who knows? ↩︎
note to self: find a way to automatically record all prompts! ↩︎
for some reason, I keep wanting to call it Antimatter instead of Antigravity. Ominous? ↩︎
I mean. I took linear algebra twice because I had to, not because I could actually do it… ↩︎
