Wilson Neto63 downloadsStudy flashcards written in your notes, with spaced repetition (FSRS): each level-2 heading in a .cards.md note is a card, and each review is saved in that note, so your progress syncs with the vault.
Your review progress lives in the card's own note, so git, iCloud and Obsidian Sync carry it with no separate database.
Study flashcards written in your notes, with spaced repetition. A deck is an ordinary note: every ##
heading is a card's question, and the lines under it are the answer. Open any note as flashcards from its
right-click menu, or name it *.cards.md to make it a deck everywhere. Each review is
saved in the same note as one hidden line under the card, so your progress lives with your notes and syncs with
your vault to every device you study on, phone included. Scheduling is FSRS-6, the algorithm Anki uses.
![[diagram.png]]), math, code, tables, callouts, internal
links and your theme.Several Obsidian plugins let you study flashcards written in your notes. The table sets out what each one says about itself on its page in the community directory (read on November 1, 2026); "—" means the page doesn't say.
| Cards are written as | Review progress is kept in | Scheduler | Desktop and mobile | Network use | |
|---|---|---|---|---|---|
| Plain Deck | ## headings with the answer under them, in *.cards.md notes or any note you open as flashcards |
One comment line under each card, in the card's own note | FSRS-6 | Yes | None |
| Decks | ## headings (the level can be changed) with the text under them, two-column tables, image occlusion and ==cloze==, in notes tagged #decks |
A SQLite database, flashcards.db, in the plugin's folder, plus one sync log file per device in the vault |
FSRS-6 | Yes | Optional: its deck directory and AI features |
| Spaced Repetition | Question::Answer, multi-line cards split by ?, and cloze cards, in notes tagged #flashcards |
— | FSRS or SM-2 | Yes | — |
| Talking Cards | Question ;; Answer or Question :: Answer, multi-line cards split by ?, cloze and image occlusion; decks are folders |
Files in the vault, Talking Cards/reviews-<device>-<year>.md, one per device |
FSRS | Yes | Only for its voice store and voice downloads |
Plain Deck keeps each card's current schedule (due date, stability, difficulty, reviews and lapses), not a log of every review. The others also do things Plain Deck doesn't: Decks imports Anki collections, Spaced Repetition schedules whole notes for review, and Talking Cards reads cards aloud.
## headings are the
cards, whatever the note is called; Plain Deck keeps it with your decks until you choose Remove from
decks in the same menu.Untitled.cards.md with a first card to overwrite. Every note whose name ends in .cards.md, for
example Networking.cards.md, is a deck without any step:# Networking
## What does TCP add over IP?
Reliable, ordered delivery, with retransmission and flow control.
## What does this print?
```js
console.log([1, 2, 3].map(parseInt));
```
?
`[1, NaN, NaN]`: `map` passes the index as `parseInt`'s radix.
## heading is a card, and its text is the question. The card runs to the next ## or # heading;
headings of level 3 and deeper stay inside it.? splits a card: the lines above it are shown with the question, the lines below it
are the answer. Use it for code, a quote, a picture or a long question.## headings inside code blocks and comments are not cards.<!-- srs: review due=2026-11-02T10:04:31Z last=2026-10-29T10:04:31Z s=4.1312 d=5.2341 reps=2 lapses=0 -->.
Reading view hides it. Delete the line to make the card new again; don't edit it by hand (a line the plugin
cannot read sets the card aside instead of restarting it).
In Settings > Plain Deck, or with the Settings button in the decks view:
The examples folder has decks to try: copy one into your vault and open the Plain Deck view.
# headings in the chapter's order.?.The skills/plain-deck-flashcards folder is an agent skill: it teaches an AI agent
(Claude Code, the Claude apps, or any agent that reads instructions) to write decks in this format, from your notes,
a document or a vocabulary list: one fact per card, good questions, the ? split, and never touching the review
lines of a deck you already study. Its checker, scripts/check-deck.mjs (Node 18 or later, nothing to install),
reads a deck exactly as Plain Deck does and reports what would go wrong:
node skills/plain-deck-flashcards/scripts/check-deck.mjs "/path/to/vault/HTTP caching.cards.md"
Installing it is one copy, for example into ~/.claude/skills/ for Claude Code: see
skills/README.md.
main.js, manifest.json and styles.css from the
latest release into
<vault>/.obsidian/plugins/plain-deck/, reload Obsidian, then enable Plain Deck in Settings > Community
plugins.Plain Deck works offline. It makes no network requests, has no telemetry or ads, and needs no account. To find
your decks it goes through the list of files in your vault (their paths only), then reads the notes whose names
end in .cards.md (under the deck folder, if you set one) and the notes you opened with it. It writes only into
those notes, one review line at a time, and creates a note only when you ask for a new deck or the example deck.
Its settings are kept in the plugin's own folder (data.json). It never reads or writes files outside your
vault.
npm install
npm run build # main.js and styles.css, next to manifest.json
npm run dev # the same, rebuilt on every change
npm run check # Obsidian's lint rules, type checks, tests and the build
Copy main.js, manifest.json and styles.css into <vault>/.obsidian/plugins/plain-deck/. Releases are
built by GitHub Actions when a version tag is pushed (.github/workflows/release.yml), with build attestations.
CONTRIBUTING.md covers trying a build in a test vault, reporting a bug and sending a pull
request.
What would make you switch from your current flashcard plugin? Tell us in Discussions, where questions and ideas are welcome too.
Found a bug? Open an issue. The plugin is developed together with its tests in a separate repository and exported here for each release, so a pull request is welcome and ships with the next version: CONTRIBUTING.md explains how.
Plain Deck is free, works offline and has no ads or accounts. If it is useful to you, you can support its development on GitHub Sponsors.
MIT, see LICENSE. The scheduler is a reimplementation of FSRS-6 that follows ts-fsrs (MIT, Copyright (c) 2026 Open Spaced Repetition): THIRD-PARTY-NOTICES.md.
Mindslate: open a note as a keyboard-first mind map and edit it in place, while the note stays an ordinary heading with a nested list.