Ansu Samanta1 downloadsObsidian plugin: automatic flashcards, spaced repetition, active recall and retention analytics. Local and free.
Notes → automatic flashcards → spaced repetition → active recall → answer comparison → retention analytics. Everything runs locally inside Obsidian. No AI model, no API key, no account, no network access, no subscription.
You write normal Markdown. FlashCard reads it with a set of deterministic rules, turns the recall-worthy parts into cards, schedules them, and measures whether you actually remember. Cards are never written into your notes; edit the note and the cards follow.
Typing in any settings field (tags, folder lists, the FlashCard folder path, keyboard shortcuts, daily limits) no longer writes to disk on every keystroke — the value updates instantly, the save and any rescan are debounced
Toggling, reordering, editing or deleting a card separator now redraws just that list, not the entire settings tab — no more full-page flash for a single checkbox
Small CSS polish: smooth scrolling within settings, a brief fade when a section opens
Typed-answer comparison shows just a verdict badge and the correct/partial/incorrect override by default; the word-match %, meter and matched/missed terms are one click away behind "Show details"
The review card's metadata line is now just the deck name; source note, heading and extraction rule are a tooltip away and still reachable via Open Source / the card menu
Session-complete screen leads with Correct % and Study time; the card/skip count moved to a small caption since the Again/Hard/Good/Easy bar already shows it
A short orienting note at the top of Settings, plus the search box, points new users at the handful of settings that matter
Decks screen redesigned: a thin top bar (Browse / Dashboard / Settings), two big Due/New tiles, a quick-add box (Question :: Answer, press Enter), and plain one-line deck rows — detailed stats (retention, streak, consistency) moved to the dashboard instead of being duplicated here
First-run onboarding panel with two concrete ways to create your first card; dismissable, never shown again once you have cards
Settings page has a search box at the top that filters every setting by name/description, across all collapsed sections
Review screen: Skip is now a small text link under the grade buttons instead of a full-width button, so it can't be mistaken for a grade
Decks screen (ribbon icon): every deck as a collapsible tree with New / Learn / Due, click-to-practise, a ⚙ menu (practice, custom study, analysis, browse, add sub-deck, rename, import into, export, delete) and a small consistency / retention summary
Anki import fixed: modern .apkg files (compressed collection.anki21b) now import; previously the placeholder collection was read. Includes a built-in zstd decoder; large imports are fast and the file is read as soon as it is chosen
Internal card ids (^fcb-…) are hidden in Reading mode and Live Preview (still in the file, so identity and history are unchanged)
Dashboard ranges use local calendar days and never extend past today; deck performance is a hierarchy; clearer visual hierarchy
Roomier, responsive import/export and other dialogs; settings grouped into collapsible sections
Review screen and session summary polish; Skip is visibly different from Again; shortcuts never fire while typing
Side-by-side duplicate comparison; Open Source survives renamed, moved, edited and deleted notes
Under your control — select text in a note, right-click, FlashCard →
{{c1::…}} is written for youQuestion # Answer lines into cards with any separatorRight-click a file in the explorer for Generate Flashcards, Review Cards from This Note, Open FlashCard Cards. Every bulk action shows a preview (select, edit, remove, change deck/tags, duplicates flagged) before anything is saved. Your notes are never modified.
Automatic — the rule engine below reads notes and finds cards. It can be switched off completely; manual creation keeps working.
Cards you create live in real Markdown files under FlashCard/ (configurable); sub-folders are decks (FlashCard/Economics/Micro/Cards.md). Type or paste lines like What is GDP? :: Market value of final goods. and they are cards. Built-in separators: :: → => | = # @ + $ (risky ones are off by default) plus your own, validated (punctuation/symbols only). Cards written by the plugin get a block id (^fcb-…) so review history survives edits and moves. Folders starting with _ are ignored.
.apkg (older collection format) incl. scheduling, history, media; Anki text, CSV/TSV, CrowdAnki JSON, FlashCard JSON, Markdown/text. Export: FlashCard JSON (full backup), CSV, Markdown, Anki text file. Every import ends with a report..apkg export is not implemented (needs an SQLite writer); use the Anki text export, or JSON for a full backup. .apkg import reads both current (compressed, zstd) and older Anki packages entirely offline.| # | Rule | Note contains | Card |
|---|---|---|---|
| 1 | Question / Answer | Question: … then Answer: … |
Q → A (multi-line answers OK) |
| 2 | Q. / A. | Q. … / A. … (also Q: / A:, bold labels) |
Q → A |
| 3 | Heading → explanation | ## Photosynthesis + paragraph |
“What is photosynthesis?” |
| 4 | Definition sentence | Photosynthesis is the process by which… |
“What is photosynthesis?” |
| 5 | Means / refers to | X means…, X refers to…, X is defined as…, X stands for… |
“What is X?” / “What does X mean?” |
| 6 | Colon definition | Opportunity Cost: The value of… (also **Term**: …) |
“What is Opportunity Cost?” |
| 7 | Bullet definition | - GDP — Market value of… (—, –, -, →) |
“What is GDP?” |
| 8 | Tables | | Term | Definition | → one card per row. Any other table → one card per cell (row + column header → cell) |
“What is supply?” / “Capital: France → ?” |
| + | Cloze | {{c1::hidden}} text, ==highlights== (optional: **bold**) |
Sentence with […] |
%%comments%% and task lists are ignored. Labels like Note:, TODO:, Example: never become cards. Headings like Summary, References, Chapter 3, dates are skipped.flashcards: false in its properties (or in with flashcards: true). Settings can restrict card generation to a tag or folders, and exclude folders.Space/Enter reveal & grade (Good, or the suggested grade after a typed answer), 1–4 grade, Z undo, O open the source note, Ctrl/Cmd+Enter reveal from the answer box.An Anki-style SM-2 variant, all tunable in settings: learning steps (default 1 10 min), graduating/easy intervals, starting ease 2.5, ease changes (−0.2 Again, −0.15 Hard, +0.15 Easy), lapse handling with relearning steps, an interval modifier, ±5 % fuzz, partial credit for overdue cards, guaranteed Hard < Good < Easy, daily new/review limits, and a configurable day-rollover hour. Scheduling data is stored by question text, so renaming/moving notes and editing answers keep your progress.
Due/new/learning/young/mature/suspended counts · true retention (30 days and all time) · predicted recall today · streaks · 30-day forecast · 13-week activity heat map · button usage · weakest notes (with one-click review) · leeches.
Manual: copy main.js, manifest.json, styles.css into <vault>/.obsidian/plugins/flashcard/ and enable the plugin.
From source:
npm install
npm run build # type-checks, then bundles to main.js
npm test # unit tests for the rule engine, scheduler and comparison
For development, npm run dev rebuilds on change (symlink this folder into your vault's plugin directory).
Adding a rule: implement Rule { id, name, description, run(ctx) → RawCard[] } in rules.ts and add it to RULES; it gets a settings toggle automatically. Because extraction is a pure function (text, path, options) → Card[], an optional enhancer (for example a user-supplied AI provider) can be layered on top later without touching the core, which stays free and offline.
The plugin makes no network requests. Review history and scheduling live in the plugin's data.json in your vault.
Q. / A., colon or cloze syntax for anything important.