Hanqi Zhang14 downloadsLets Wedelia search this vault on your device, sending only matching excerpts or a note she asks to open.
Lets Wedelia, an AI companion app, search your Obsidian vault while she answers you.
You ask Wedelia something. If your notes might help, she asks this plugin, the plugin searches the vault on your computer, and only what matched is sent back.
The honest caveat: whatever is sent travels with that one request, so the AI model provider handling the request sees it, the same as the rest of your message. "Not stored" is true. "Never leaves your machine" would not be.
It only works while Obsidian is open. When it is closed, Wedelia is told your notes are unreachable and says so rather than guessing.
Memories/, Diary/, People/ and Itineraries/ folders, and Tasks.md
and README.md at the vault root. Otherwise she would read her exported
memories back as if you had written them..obsidian/ and anything else whose path starts with a dotapi.wed.chat exchanges your connection password for a short-lived ticket.From Obsidian: open Settings → Community plugins → Browse and search for "Wedelia Notes", or open its directory page and select Add to Obsidian.
Manually: download main.js and manifest.json from the
latest release into
<your vault>/.obsidian/plugins/wedelia-notes/, reload Obsidian, and enable
Wedelia Notes under Community plugins.
Search never reads the whole vault. Obsidian already holds every path, mtime and heading in memory, so names, headings, tags and aliases are matched for free, and only the notes that matched get opened. When nothing matches for free it falls back to reading the 400 most recently modified notes, and the whole thing stops at an 8-second budget regardless: the request it answers lives 18 seconds, and answering late is the one failure it cannot have.
Measured on a 49,802-note, 60.8 MB vault: reading everything took 17.1s. That was never going to fit.
The ceiling this buys: a term that appears only in the body of an old note, whose name and headings never mention it, is not found. A real index is the upgrade, not a bigger scan. This is the best place to help.
npm install
npm test
npm run typecheck
npm run build
node test/bundle.smoke.cjs
src/ has everything with a decision in it, tested without an Obsidian
runtime.main.ts is the Obsidian adapter: list files, read a file, settings pane.test/fixtures/relay-envelopes.json holds envelopes produced by the Wedelia
relay. The relay only accepts a result that matches exactly, so the tests
check the plugin builds the same bytes.npm run package builds a zip with a ready-to-copy wedelia-notes/ folder.manifest.json version. The
release workflow builds, tests, attests and publishes main.js and
manifest.json, so release assets are never built on a laptop.npm run build also writes dist/package.json marking the bundle as
CommonJS. Obsidian evaluates it that way regardless, but without it Node reads
the .js extension as ESM and the smoke test cannot load the bundle. An ESM
bundle would load in Obsidian as an empty module with no error at all, which
looks exactly like a plugin that installed fine and does nothing.
Issues and pull requests are welcome. The relay protocol is set by the Wedelia service, which is not in this repository, so a change to the envelope format can't be accepted here on its own.