README file from
GithubEasy Recall
English | 中文
A minimalist spaced repetition plugin focused on core memorization features—zero configuration, just write and review.
Features
- Zero Configuration - Start reviewing immediately after installation, no complex setup needed
- Native Markdown Syntax - Create cards with
==highlight==and?questionsyntax, supports full-width question mark? - File-level Tags - Define decks with
#easy-recall/xxx, supports Chinese tags - Smart review lists - Optionally review extra-practice leeches or new cards from the deck picker (off by default; turn them on in settings)
- Three-state Rating - Again/Hard/Good, simplify decision fatigue
- Instant Feedback - "Again" cards go back to queue tail immediately, continue reviewing in current session
- Multi-language Support - Auto-adapts to Obsidian language settings (English/Chinese)
- SuggestModal Deck Selector - Quick Switcher-like deck selection experience
- Review Surface Option - Review in the default modal window or reuse an Obsidian tab
- Mobile Support - Perfectly adapted for phones and tablets
Installation
Manual Installation
- Download the latest version of
main.js,manifest.json,styles.css - Create
.obsidian/plugins/easy-recall/directory in your Obsidian Vault - Copy the downloaded files to that directory
- Enable the plugin in Obsidian settings
From Community Plugin Marketplace
Easy Recall has been submitted to the Obsidian Community Plugin Marketplace. After approval, install it from Obsidian settings under Community plugins.
Usage
Creating Cards
Rule: Cards must be separated by blank lines. A card = a continuous non-empty text block.
Cloze Cards
Traditional Chinese Medicine studies ==human life movement==.
Multi-line Cloze Cards Adjacent Cloze lines in the same block are merged into one card:
Applications:
1. Cold: ==induce sweating==
2. Cough: ==relieve asthma==
To create separate cards, use blank lines:
1. Cold: ==induce sweating==
2. Cough: ==relieve asthma==
Q&A Cards
What is 2+2?
4
Or:
What is the area formula for a circle?
?
S = πr²
Cards with Hint (Optional)
What is the formula for the area of a circle?
?
S = πr²
> [!hint] Think about the relationship between radius and area
> π is approximately 3.14159...
💡 Supports full-width question mark
?, suitable for Chinese input habits💡 Hint uses Obsidian callout syntax
> [!hint], displayed optionally during review
Defining Decks
Add tags at the beginning of the file:
---
tags:
- easy-recall/math
---
Card content...
Or in the body:
#easy-recall/math
Card content...
Start Reviewing
- Click the review icon 📚 in the left sidebar, or use command palette to execute "Start Review"
- Search and select a deck in SuggestModal, or press Enter to review All due. If you turn them on in settings, the list can also show Extra practice and New due. Extra practice can include cards that are not due yet; after you keep rating them Good, they leave that list on their own.
- View the card, press Space on desktop to reveal the hint or answer, or click/tap "Show Hint" / "Show Answer"
- Select rating:
- 1 - Again (🔴): This card goes to the end of the current batch, so you will see it again soon.
- 2 - Hard (🟠): You will see it again sooner than if you had remembered it well.
- 3 - Good (🔵): You will see it again later.
💡 Rating guide for multi-cloze cards: Rate based on the worst cloze, not the average. If even one cloze is completely blank → Again. If all clozes are recallable but some feel slow or uncertain → Hard. Only choose Good when every cloze is recalled smoothly.
You can also run "Review Due Cards in Current Note" from the command palette in any Markdown note to review only due cards from that note.
By default, each review session includes up to 20 due cards, so cards marked Again can return quickly within the same smaller batch. Change Review Batch Size in plugin settings to adjust this limit. If more due cards remain after the batch is finished, the completion screen offers Continue Review to start the next batch.
By default, reviews open in a modal window. Change Review Interface in plugin settings to use either a modal window or a reusable Obsidian tab.
The default deck tag prefix is easy-recall. Change Deck Tag Prefix in plugin settings if you want a different prefix.
Turn on Click-to-Reveal Review in plugin settings to self-check cloze answers item by item. Each hidden cloze cycles through hidden, shown, and crossed out as you tap it. While any cloze item remains hidden, no Show Answer button appears. After every cloze item is either shown or crossed out, the confirmation button (Again, Hard, or Good) appears automatically, with the rating calculated from the shown-item percentage. The default thresholds are 50% for Hard and 80% for Good. This mode is off by default. On desktop, the matching rating shortcut confirms the calculated rating; Space can still show the hint when a hint is available.
To hide a specific heading from the review path, add <!--easy-recall-hide--> at the end of that heading line:
# Chapter <!--easy-recall-hide-->
## Section
==Answer== content
The review path will show File name / [...] / Section. This only masks the marked heading segment; the file name and unmarked child headings still appear.
Desktop Shortcuts
Desktop shortcuts work in both the modal window and the reusable Obsidian tab. Space only reveals content; ratings are handled by number keys after the answer is visible.
| Key | Function |
|---|---|
| Space | Show hint, then show answer |
| 1 | Again |
| 2 | Hard |
| 3 | Good |
| Backspace | Undo last rating (when Undo last rating is enabled in settings) |
Data Storage
Review data is stored as HTML comments before the card:
<!--SR:1,250,2026-02-18T10:00:00Z,1,0-->
Traditional Chinese Medicine studies ==human life movement==.
The plugin writes this progress comment above the card. Older 4-part comments still work.
Your notes always belong to you, data does not depend on any external service.
How review timing works
You only choose how the card felt. Easy Recall decides when to show it again.
- New cards come back quickly. After you remember them a few times in a row, the gap gets longer.
- Again puts the card at the end of this batch, so you see it again before you finish.
- If you turn on Extra practice, cards you often miss show up there even if they are not due yet. Remember them a few times in a row and they leave that list.
- The longest wait is about a year.
Development
# Install dependencies
npm install
# Development mode (auto rebuild)
npm run dev
# Build production version
npm run build
# Run tests
npm test
# Test coverage
npm run test:coverage
For repository conventions and implementation boundaries, see AGENTS.md.
License
MIT License - See LICENSE file
Acknowledgements
- Inspired by Anki and Obsidian Spaced Repetition plugin
- Follows Obsidian official plugin development best practices
Made with ❤️ for Obsidian users