No description
Find a file
Thomas Blanc 6009c10ca9
ci: drop attestation again (0.2.28) - Obsidian rejects valid attestations
Empirically re-confirmed on 0.2.27: unique digests + 1 attestation each +
`gh attestation verify` exit 0, yet Obsidian's review still errors 'signature
invalid'. It is an Obsidian-side verifier issue. A missing attestation is a
non-blocking Recommendation, so ship without one.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 15:39:14 +03:00
.github/workflows ci: drop attestation again (0.2.28) - Obsidian rejects valid attestations 2026-07-17 15:39:14 +03:00
companion fix(companion): self-heal a stale (pre-prefix) index on upgrade (0.2.26) 2026-07-17 15:21:59 +03:00
dev restructure: plugin at repo root for Obsidian community submission 2026-07-14 15:34:59 +03:00
docs docs: update submission to the community.obsidian.md web flow (PRs disabled) 2026-07-15 10:37:55 +03:00
src fix(review): use Obsidian createEl helper instead of document.createElement (0.2.26) 2026-07-17 15:06:32 +03:00
test 0.2.3: rename to 'Local AI for your vault' + clear review warnings 2026-07-15 11:58:57 +03:00
.gitignore restructure: plugin at repo root for Obsidian community submission 2026-07-14 15:34:59 +03:00
CHANGELOG.md 0.2.25: version-stamp styles.css too (unique hash, no inherited attestation) 2026-07-17 14:48:37 +03:00
esbuild.config.mjs 0.2.25: version-stamp styles.css too (unique hash, no inherited attestation) 2026-07-17 14:48:37 +03:00
eslint.config.mjs 0.2.2: fix Obsidian automated-review findings (typed RPC, CSS classes, minAppVersion) 2026-07-15 11:04:11 +03:00
LICENSE QVAC for Obsidian: local AI plugin + companion 2026-06-25 17:54:43 +03:00
manifest.json ci: drop attestation again (0.2.28) - Obsidian rejects valid attestations 2026-07-17 15:39:14 +03:00
package-lock.json 0.2.2: fix Obsidian automated-review findings (typed RPC, CSS classes, minAppVersion) 2026-07-15 11:04:11 +03:00
package.json ci: drop attestation again (0.2.28) - Obsidian rejects valid attestations 2026-07-17 15:39:14 +03:00
README.md docs: fix README command names to match the code + drop unverifiable competitor claims 2026-07-16 14:38:08 +03:00
styles.css ci: drop attestation again (0.2.28) - Obsidian rejects valid attestations 2026-07-17 15:39:14 +03:00
tsconfig.json restructure: plugin at repo root for Obsidian community submission 2026-07-14 15:34:59 +03:00
version-bump.mjs restructure: plugin at repo root for Obsidian community submission 2026-07-14 15:34:59 +03:00
versions.json ci: drop attestation again (0.2.28) - Obsidian rejects valid attestations 2026-07-17 15:39:14 +03:00

Local AI for your vault

Chat with your vault, fully local. An Obsidian plugin that runs AI entirely on your machine: semantic search, cited answers, missing-link suggestions, inline writing commands, OCR over your images, and an optional model fine-tuned on your own notes. Nothing leaves your computer.

It runs entirely on your machine, and can even fine-tune a small model on your vault so the assistant learns your knowledge and your writing style. Your notes never become someone else's training data.

A single panel with four tabs: Chat . AI Search . Connect . Train.

Features

Chat Ask questions, get answers grounded in your notes with clickable citations.
AI Search Find notes by meaning, not keywords (Obsidian's built-in search is keyword-only).
Connect Finds notes that belong together but are not linked yet, lets an LLM judge which deserve a real link, and writes the [[wikilink]] for you (per-note while you read, or a whole-vault scan). Turns a pile of notes into a graph.
Train (optional) Fine-tune a small model on your notes so chat answers from memory and in your voice. Runs on your machine; the plugin is fully usable without it.

Plus: inline writing commands (summarize / rewrite / fix grammar / expand, with review-before-apply) and opt-in OCR so the text inside your screenshots becomes searchable.

How it works (like Ollama)

This plugin is a thin client. The AI runs in a separate QVAC companion process on your computer, and the plugin talks to it over 127.0.0.1 (localhost) only. Same shape as plugins that use a local Ollama server.

Disclosures (please read):

  • A local companion is required. Install and run the QVAC companion; the plugin connects to it. Without it, the plugin shows a "companion not running" state and does nothing. See Install the companion.
  • Everything is local. No vault content, no queries, and no telemetry are ever sent to any server. The only network use is the companion's one-time model download on first run (about 4.5 GB: a chat model plus an embeddings model), fetched from the QVAC model registry. You can point it at models you already have to download less, or nothing.
  • Files outside the vault. The plugin reads a small auth token the companion writes at ~/.qvac-obsidian/ so it can connect securely to the local server. The companion stores its index and models under ~/.qvac-obsidian/ and ~/.qvac/.
  • Desktop only. The plugin uses Node/Electron APIs, so it will not load on Obsidian mobile. The companion runs on any desktop OS with Node 20+ (macOS, Windows, Linux).
  • No self-update. The plugin never downloads or runs code on its own. You install and update the companion yourself.
  • To stop it: quit the QVAC companion. The plugin then simply reports it is offline.

Install

  1. Install the plugin from Community plugins in Obsidian (search "Local AI for your vault").
  2. Install and run the QVAC companion (below).
  3. Open the QVAC panel (ribbon icon or the command palette: "Open chat"). The first time, a Setup panel downloads the models (or lets you pick local models you already have), all on your machine.

Install the companion

The companion is a small local daemon that runs @qvac/sdk (Apache-2.0), the local AI engine from Tether's QVAC. One daemon serves all your vaults. Its source is in companion/.

Run it (any desktop OS with Node 20+):

npx qvac-obsidian-companion

That starts the daemon and writes its connection token to ~/.qvac-obsidian/; the plugin connects automatically. Leave it running while you use Obsidian; quit it (Ctrl+C) to go offline.

Prefer a global install, or running from source:

npm install -g qvac-obsidian-companion && qvac-obsidian-companion   # global
cd companion && npm install && node server.js                        # from a clone of this repo

Commands

  • Open chat / Open semantic search / Open Connect (find missing links) / Train a model on your vault
  • Index vault (incremental) / Reindex vault (full) / Color graph by folder
  • Summarize selection / Rewrite selection (clearer) / Fix grammar in selection / Expand selection (also in the editor right-click menu)

Privacy

100% local. No vault content, queries, or telemetry are sent anywhere. Open source, no obfuscation, no analytics, no account. Your notes are yours. The whole point of this plugin is that your second brain never becomes someone else's training data.

Development

The plugin source is at the repo root (src/, manifest.json, styles.css); the companion is in companion/; dev helpers and demo vaults are in dev/.

npm install && npm run build          # builds main.js
npm test                              # plugin unit tests
./dev/run-dev.sh "/path/to/Vault"     # build + install into a vault + start the companion

License

MIT (plugin). The companion depends on @qvac/sdk (Apache-2.0).