Panda Zap is an Obsidian desktop plugin that turns Markdown notes into Anki flashcards. Write Q/A pairs naturally in your vault, preview every change before it hits your deck, and sync to Anki via AnkiConnect with full control over what gets added, updated, or deleted.
Unlike manual flashcard creation, Panda Zap works with the notes you already have. Embed questions alongside your study material, batch-sync entire folders, and keep your Anki decks in sync as your vault evolves. Every sync is preceded by a diff-style preview so you never accidentally delete or overwrite cards.
Features
Q/A extraction
Panda Zap scans any open Markdown note for lines beginning with Q: and their corresponding answers starting with A:. Labels are case-insensitive, so q: and Q: work identically. Multiple cards in a single file are extracted in order, and each card is tracked by its content hash so subsequent syncs only push changes.
Full preview dialog
Before any card is added, updated, or deleted, Panda Zap shows a diff preview. Adds appear in green, updates in yellow with old and new values side by side, and deletions in red. You can uncheck individual cards to exclude them from the operation. This preview runs every time you sync, so there are no surprises.
Deck targeting with priority fallback
Cards can land in any Anki deck you choose. Panda Zap resolves the target deck using a priority chain: a Deck::Name override on the first line of the note takes precedence, followed by folder-based routing configured in settings, then the default deck. This means you can have one note targeting Japanese::Kanji::N5 and another note in a different folder targeting Science::Biology::Genetics without touching any configuration.
Batch sync from file explorer
Select multiple notes in Obsidian's file explorer, right-click, and choose Panda Zap: Sync selected notes to Anki. Each note is processed independently, and the preview shows a combined list of all cards across all selected files. This is the fastest way to sync a folder of study notes after a study session.
Image support
Attach images to the back of any card using the I: marker. Panda Zap supports wiki links ([[image.png]]), embedded markdown (), and plain filenames. Images are resolved relative to the note's location in the vault, so you can keep screenshots and diagrams alongside your Q/A pairs.
Connection test
A dedicated command lets you verify that AnkiConnect is reachable from inside Obsidian without running a full sync. The test pings the configured AnkiConnect URL and reports back whether the handshake succeeded. Useful for diagnosing firewall or port issues.
How it works
Panda Zap follows a four-step pipeline: parse, diff, preview, sync.
1. Parse. You open a note or select files in the explorer. Panda Zap reads the Markdown content and extracts every Q: / A: pair it finds. Each card is fingerprinted by a hash of its question, answer, image, and target deck. Cards that appear in multiple notes are treated as separate entries because Obsidian files are independent.
2. Diff. The extracted cards are compared against the current state of the target Anki deck. Cards that exist in the note but not in Anki are marked as additions. Cards whose content has changed since the last sync are marked as updates. Cards that are in Anki but no longer in the note are marked as deletions. Cards with no changes are skipped.
3. Preview. A modal dialog shows the full diff. Each card is listed with its status (new, updated, deleted), its question preview, and the deck it will land in. You can uncheck individual cards to exclude them. The preview is the safety net - nothing reaches Anki without your explicit review.
4. Sync. When you confirm, Panda Zap sends the approved cards to AnkiConnect: new cards are created, changed cards are updated with new content, and removed cards are deleted from the deck. The operation runs in sequence to avoid race conditions, and each API call is validated before the next one starts.
For bulk operations via the file explorer, the same pipeline runs across all selected files and the results are merged into a single preview.
Quick start
Install Panda Zap from the Obsidian community plugins store or sideload the latest release from GitHub. You also need Anki running with the AnkiConnect addon installed.
Create a note with a few cards:
Q: What is the capital of France? A: Paris
Q: What year did World War II end? A: 1945
Q: What does HTTP stand for? A: Hypertext Transfer Protocol
Open the note in Obsidian. Click the zap icon in the left ribbon, or open the command palette and run Panda Zap: Sync current note to Anki. The preview dialog appears showing all three cards as new additions. Click confirm and they are added to your default deck.
To sync multiple notes, select them in the file explorer, right-click, and choose Panda Zap: Sync selected notes to Anki. The preview combines cards from every selected file.
Writing cards
Panda Zap recognises cards by the Q: and A: markers at the start of a line. The format is flexible: you can put the answer on the same line as the question, on the next line, or spread across multiple lines.
Single-line cards
The simplest form puts the question and answer on one line, separated by A::
Q: What is the SI unit of force? A: Newton
Q: Who wrote Macbeth? A: William Shakespeare
Q: What does CPU stand for? A: Central Processing Unit
Blank lines between cards are ignored. You can mix single-line and multi-line cards in the same note.
Multi-line answers
When an answer needs more space, write the question on one line and the answer on the following lines. Everything between the A: line and the next Q: line (or the end of the file) is treated as part of the answer.
Bullet lists:
Q: Name three types of cloud computing.
A: - Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
Numbered steps:
Q: What are the steps to make tea?
A: 1. Boil water 2. Add tea bag to cup 3. Pour water over tea bag 4. Steep for 3-5 minutes 5. Remove tea bag 6. Add milk or sugar to taste
Tables:
Q: List the planets in order from the sun with their type.
A: | Planet | Type |
|-----------|---------------|
| Mercury | Terrestrial |
| Venus | Terrestrial |
| Earth | Terrestrial |
| Mars | Terrestrial |
| Jupiter | Gas giant |
| Saturn | Gas giant |
| Uranus | Ice giant |
| Neptune | Ice giant |
Paragraphs:
Q: What is the greenhouse effect?
A: The greenhouse effect is the process by which gases in Earth's atmosphere trap heat from the sun. Without it, the planet would be too cold to support life. However, human activities have intensified the effect, leading to global warming.
Images
Images appear on the back of the card alongside the answer text. Use the I: marker followed by the image filename or path. Multiple images are supported per card.
Wiki link syntax (Obsidian native):
Q: What is the capital of France?
A: Paris
I: [[eiffel_tower.png]]
Embedded Markdown syntax:
Q: What is the capital of France?
A: Paris
I: 
Plain filename:
Q: What is the capital of France?
A: Paris
I: eiffel_tower.png
Multiple images on one card:
Q: Label the parts of the cell.
A: See the diagrams below.
I: [[cell_diagram.png]]
I: [[organelle_labels.png]]
Paths are resolved relative to the note file's directory. Absolute vault paths starting with / are also supported. If an image file does not exist at the resolved path, the line is silently skipped and the card is created without it.
Deck targeting
By default, cards are sent to the deck configured in settings (the Default Deck). You can override this at the file level and at the folder level.
Priority order (highest to lowest):
- First-line deck override in the note
- Folder-to-deck mapping in settings
- Default deck in settings
First-line override. Place Deck::Name on the very first line of the note (before any Q/A pairs). Every card extracted from that file is sent to the specified deck:
Japanese::Kanji::N5
Q: 水 - What is this kanji? A: Water
Q: 火 - What is this kanji? A: Fire
Q: 森 - What is this kanji? A: Forest
Multiple notes sharing one deck. You can have several notes all target the same deck by using the same override on each:
biology/cell_structure.md:
Science::Biology
Q: What is the powerhouse of the cell? A: Mitochondria
Q: What is the function of the nucleus? A: Stores genetic material
biology/genetics.md:
Science::Biology
Q: What is DNA? A: Deoxyribonucleic acid
Q: What is a gene? A: A segment of DNA that codes for a protein
Both notes target Science::Biology. Cards remain grouped by their source note in the preview dialog.
Folder-based routing. In Panda Zap settings, you can map folders to decks. For example, mapping languages/ to Languages means every card in a file under languages/ goes to the Languages deck, unless the file has a first-line override. Folder mappings support nested paths.
Formatting rules
- Case-insensitive markers.
Q:,q:,A:,a:all work. Mixed case likeQ:anda:in the same card is fine. - Bold and italic stripping. Bold (
**bold**) and italic (*italic*) markers in answer text are stripped before the card is created. The text itself is preserved. - Code blocks. Content inside fenced code blocks (triple backticks) is not scanned for Q/A markers. This lets you include code examples containing
Q:orA:without them being parsed as cards. - Frontmatter. YAML frontmatter between
---delimiters at the top of the file is ignored. Cards are only scanned from the body of the note. - Whitespace. Leading and trailing whitespace is trimmed from question and answer text. Blank lines within a multi-line answer are preserved.
Settings
| Setting | Description |
|---|---|
| Default deck | Deck name for cards that do not have a first-line override or a folder mapping. Defaults to Default. |
| Folder decks | Map folder paths to deck names. One mapping per line, format: folder/ -> Deck::Name. Longer paths take priority over shorter ones. |
| AnkiConnect URL | The URL of your AnkiConnect instance. Defaults to http://127.0.0.1:8765. Change this if you run AnkiConnect on a non-standard port or a remote host. |
| Preview before sync | Toggle the diff preview dialog on or off. When off, cards are synced immediately without review. Defaults to on. |
| Card model | The Anki note type (model) to use for new cards. Defaults to Basic. The model must have Front and Back fields. |
Requirements
- Obsidian v0.15.0 or later (desktop application)
- Anki 2.1.54 or later
- AnkiConnect addon (install from Anki's addon manager using code
2055492159)
AnkiConnect must be running and reachable. The default URL is http://127.0.0.1:8765. If you have configured AnkiConnect to listen on a different port or bind to a specific network interface, update the AnkiConnect URL setting in Panda Zap accordingly.
What's not supported
These features are outside the scope of Panda Zap's current design:
- Cloze deletions. Card format is Basic Q/A only. There are no plans to support cloze-style cards ({c1::deletion} syntax).
- Custom field mappings. Panda Zap uses the default Anki Basic model with Front and Back fields. Custom note types with additional fields are not supported.
- Reverse cards. Each Q/A pair produces a single card (question on front, answer on back). Automatic reverse or bidirectional cards are not generated.
- Tagging. Cards are created without tags. Panda Zap does not read from or write to Anki's tag system.
- Media import beyond images. Audio files, video, or other attachment types referenced in notes are ignored. Only image attachments via the
I:marker are supported. - Two-way sync. Panda Zap is a one-way sync: Obsidian notes are the source of truth. Changes made directly in Anki are not reflected back into your vault.
Team Super Panda

