Andy Nguyen56 downloadsTurn vocabulary notes into Anki flashcards, with optional AI-generated text and images.
Write vocabulary in Obsidian. Study it in Anki. Let AI do the busywork.
VocabWeave turns plain Obsidian notes into Anki flashcards. You keep one clean note per word, with a heading for each field. VocabWeave maps those headings onto your Anki note type and keeps both sides in sync. If you want, an AI provider of your choice can fill in definitions and example sentences, and draw a picture for the card.
## Heading in the note fills the Anki field of the
same name, and common aliases also work (for example ## Word → Front).2055492159), running while you sync.2055492159), then restart Anki.A note is just properties plus one section per Anki field:
---
anki_deck: Japanese::N2
anki_model: Basic
---
## Front
薬
## Back
medicine; drug
After the first sync, VocabWeave adds a few properties of its own (such as
anki_note_id) so it can update the same card next time. Leave them in place.
| Command | What it does |
|---|---|
Create new note |
Asks for a name and creates a note from the active profile |
Create note from selection |
Creates a note from the selected text in the current note |
Open deck and model selector |
Opens the VocabWeave sidebar |
Assign hotkeys to any of them in Settings → Hotkeys.
Add providers under Settings → VocabWeave. None are configured out of the box.
| Provider | Runs | Text | Image |
|---|---|---|---|
| OpenAI | Cloud | ✅ | ✅ |
| Gemini | Cloud | ✅ | ✅ |
| OpenRouter | Cloud | ✅ | ✅ |
| Anthropic | Cloud | ✅ | |
| Groq | Cloud | ✅ | |
| Together | Cloud | ✅ | |
| Pollinations | Cloud | ✅ | |
| Ollama | Local | ✅ | |
| Automatic1111 | Local | ✅ | |
| ComfyUI | Local | ✅ |
Each provider's base URL can be changed, so self-hosted and compatible endpoints work
too. A provider pointing at localhost is labelled local.
http://localhost:8765 by default). It reads decks and note types, and creates,
updates, or deletes notes and media.Check that AnkiConnect is installed (Tools → Add-ons) and that Anki was restarted afterwards. If you changed AnkiConnect's address, set the same URL under Settings → VocabWeave → AnkiConnect URL.
Anki already has a note with the same first field. Change the first field in your note, or delete the old card in Anki, then sync again.
Images live in Anki's media folder, so Obsidian shows them only while Anki is running. Open Anki and reopen the note.
Something else? Open an issue. Steps to reproduce and your Obsidian/Anki versions help a lot.
VocabWeave is free and built in spare time. If it saves you time, you can buy me a coffee to keep it going.
Starring the repo and sharing it with other learners helps too. Thank you! 💛
Bug reports and pull requests are welcome.
npm i # install dependencies
npm run dev # build in watch mode
npm run build # production build
npm run lint # ESLint
npm run type-check # tsc --noEmit
npm run test:unit # Vitest
npm run format:write # Prettier
A change is done when npm run lint && npm run type-check && npm run test:unit all pass.
For manual testing, copy main.js, manifest.json, and styles.css into
<Vault>/.obsidian/plugins/vocabweave/, reload Obsidian, and keep Anki + AnkiConnect
running.
docs/design/: behavior spec, module by moduledocs/contracts.md: TypeScript interfaces and the field-mapping algorithmAGENTS.md: repo layout and conventions0BSD © 2026 Andy Nguyen