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

olofhaglundolofhaglund26 downloads

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

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

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.
  • 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)

Sync behavior

Command: Sync flashcards to Anki

Per flashcard block:

  • Resolves note type from Anki/*.md.
  • Validates required fields exist in note frontmatter.
  • 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
82%
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.3
Last updated
2 months ago
Created
2 months ago
Updates
3 releases
Downloads
26
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.

Local REST API & MCP Server

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

BRAT

Easily install a beta version of a plugin for testing.

Spaced Repetition

Fight the forgetting curve by reviewing flashcards & entire notes.

Maps

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

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Zotero Integration

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

Readwise Official

Sync highlights from Readwise to your vault.

Agent Client

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

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.