Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Anki Flashcards Sync

olofhaglundolofhaglund174 downloads

Pushes flashcards from notes to Anki. The flashcards are bashed on code blocks annotated with flashcard.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates5

NOTE: This is an early version and released early to catch hiccups in the distribution flow.

Obsidian plugin that renders flashcard code blocks as card previews and syncs them to Anki through AnkiConnect.

What it does

  • Renders flashcard code blocks in Reading view and Live Preview.
  • Loads note type/card template definitions from markdown files in Anki/.
  • Uses note frontmatter as card field values.
  • Renders one preview card per card template with a front/back toggle.
  • Replaces {{Audio}} in preview with a play button that plays the referenced vault audio file.
  • Syncs flashcards to Anki (create/update) using a deterministic source tag per block.
  • Uploads linked audio files to Anki media and syncs audio fields as [sound:...].
  • Auto-creates missing decks and missing note types in Anki.

Requirements

  • Obsidian desktop.
  • Anki desktop.
  • AnkiConnect enabled in Anki (default endpoint: http://127.0.0.1:8765).

Note type definitions (Anki/ folder)

Create one markdown file per note type under Anki/. Only frontmatter is used.

Example: Anki/French Sentence.md

---
name: French Sentence
cards:
  - name: With Sound Cue
    front_template: |
      {{french}}
      <br>
      {{Audio}}
    back_template: |
      {{FrontSide}}
      <hr>
      {{english}}
  - name: Without Sound Cue
    front_template: "{{french}}"
    back_template: |
      {{FrontSide}}
      <br>
      {{Audio}}
      <hr>
      {{english}}
style: |
  .card {
    font-family: Arial;
    font-size: 20px;
    text-align: center;
  }
---
# French Sentence
This text is not read and can be used a comment to the note .

Notes:

  • Quote single-line template values when using {{...}} on one line.
  • style and styling are both accepted.
  • If fields is omitted, fields are inferred from template placeholders.

Flashcard block format

Put flashcards in normal notes using fenced code blocks:

deck: French::Sentences
note_type: French Sentence
fields:
- french
- english
- Audio

Meaning:

  • deck: target Anki deck (:: supports subdecks).
  • note_type: note type name matching Anki/*.md name.
  • fields: frontmatter keys for this note. If omitted, inferred from the note type templates.

Field values from frontmatter

Values are read from the note's frontmatter.

Example note:

---
french: Ça va
english: How are you?
Audio: [[ca-va.wav]]
---

Audio supports:

  • [[file.wav]]
  • ![[file.wav]]
  • [label](file.wav)
  • direct vault path (French/Sound Files/file.wav)
  • existing Anki token ([sound:file.wav]) is left unchanged

Limits:

  • Max single audio file upload: 100 MB.
  • Oversized field values/payloads are skipped for safety.

Sync behavior

Commands:

  • Sync flashcards to Anki — syncs whatever scope is configured in Settings → Sync scope (active file, whole vault, or a specific folder).
  • Sync all flashcards to Anki (whole vault) — always syncs every note in the vault, regardless of the configured sync scope.

Per flashcard block:

  • Resolves note type from Anki/*.md.
  • Validates required fields exist in note frontmatter.
  • Uploads linked audio values ([[file.wav]], ![[file.wav]], markdown links, or direct vault path) via AnkiConnect storeMediaFile.
  • Ensures deck exists.
  • Ensures note type exists (creates if missing).
  • Finds existing note by deterministic source tag.
  • Creates or updates note fields and tags.

Settings

  • AnkiConnect URL
  • Default deck
  • Default note type
  • Default tags
  • Auto sync (currently config only)
  • Sync scope (active-file, vault, folder)
  • Sync folder (when scope is folder)

Troubleshooting

  • Missing frontmatter key: add the key to the source note frontmatter or adjust fields.
  • Audio button says Audio not found: verify the file exists in the vault and link/path is valid.
  • If sync fails, the popup shows the first error and console logs detailed failures.

Security and privacy

  • Preview HTML is sanitized before rendering.
  • Network calls are only made to the configured AnkiConnect URL.
  • Data sent to Anki is limited to resolved card fields, deck/model names, and tags for sync.

Development

npm install
npm run dev
npm run build
HealthExcellent
ReviewSatisfactory
About
Render flashcard code blocks as preview cards in Reading view and Live Preview, showing one preview per template with a front/back toggle and a playable {{Audio}} button. Sync flashcards to Anki via AnkiConnect, create/update notes from frontmatter using Anki/ note-type templates, and auto-create missing decks and note types.
FlashcardsIntegrations
Details
Current version
0.0.5
Last updated
4 days ago
Created
5 months ago
Updates
5 releases
Downloads
174
Compatible with
Obsidian 1.12.4+
Platforms
Desktop only
License
GPL-3.0
Report bugRequest featureReport plugin
Author
olofhaglundolofhaglund
olofhaglund.name
GitHubolofhaglund
  1. Community
  2. Plugins
  3. Flashcards
  4. Anki Flashcards Sync

Related plugins

Yanki

Sync flashcards from a folder in your vault to Anki. Pure Markdown syntax. No fuss.

BRAT

Easily install a beta version of a plugin for testing.

Local REST API with MCP

Unlock your automation needs by interacting with your notes over a secure REST API.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

Maps

Adds a map layout to bases so you can display notes as an interactive map view.

Zotero Integration

Insert and import citations, bibliographies, notes, and PDF annotations from Zotero.

Agent Client

Chat with Claude Code, Codex, Gemini CLI, and more via the Agent Client Protocol — right from your vault.

Readwise Official

Sync highlights from Readwise to your vault.

Spaced Repetition

Fight the forgetting curve by reviewing flashcards & entire notes.

LanguageTool Integration

advanced spell/grammar checks with the help of language-tool.