Zhi Fu15 downloadsReview checkbox questions in the current note with hidden answers and readable local progress.
Turn checkbox notes into quick self-tests. Keep your questions and progress in Markdown.
Recall Check is a lightweight Obsidian plugin for reviewing the note you already have open. Write a question as a checkbox, wrap answers in ==double equals==, and start practicing. Reveal answers when you need them, rate your recall, and move on.

Add a few questions to a note, with a blank line between cards:
- [ ] The capital of France is ==Paris==.
- [ ] The derivative of $x^2$ is ==$2x$==.
- [ ] A card can have ==multiple answers==,
continue on another line, and include **bold text** or [[wikilinks]].
You can rate a card before revealing its answers. Each saved rating advances to the next card, with answers hidden again.
The UI follows Obsidian’s language: Chinese for Chinese locales, English otherwise. It uses Obsidian theme variables for light and dark themes.
Press Space to reveal the same card. The answers keep their space, so text and formulas stay in place.

Review unchecked cards with All, combine specific status filters, or select Remembered to retest checked questions.

The summary reports unique rated cards, ungraded cards and the distribution of your ratings.

| Key | Action |
|---|---|
| Enter | Start review from the range dialog’s focused Start button |
| Space | Show / hide the current card’s answers |
| 0 | Remembered — mark the task [x] |
| 1 | Uncertain — mark the task [ ] |
| 2 | Familiar — mark the task [ ] |
| 3 | Forgotten — mark the task [ ] |
| ← / → | Previous / next card without changing its status |
| Esc | Exit; retain saved ratings and leave ungraded cards untouched |
Review shortcuts are active only inside the review dialog. Typing controls retain their normal keyboard behavior. You can assign a global shortcut to Review current note in Obsidian’s hotkey settings.
Rating a question updates its checkbox and one status comment:
<!-- RecallCheck: 不确定 -->
- [ ] The capital of France is ==Paris==.
The four saved values are 记住了 (remembered), 不确定 (uncertain), 有印象 (familiar) and 没记住 (forgotten). These Chinese values remain stable in both UI languages. A task without a status comment is untested.
All includes only [ ] tasks. Use Remembered to retest [x] or [X] tasks, including those without a comment. Giving a remembered question a rating of 1–3 reopens its checkbox.
Cards run from a task checkbox to the next blank line; adjacent task starts also separate cards. Leave a blank line between questions for predictable formatting. Frontmatter and fenced code blocks are ignored, and inline code remains literal. Unmatched cloze delimiters remain ordinary text.
Each range shows its card count and percentage of all cards in the current note, including checked tasks. All still counts unchecked tasks only; Remembered counts checked tasks. Counts follow the same rules as the review queue.
Enable Settings → Recall Check → Underline revealed answers to draw lines below the revealed blanks, including math. It is off by default and does not change answer layout.
Run Clear status comments in current note from the command palette, or use the corresponding button in Settings → Recall Check. Confirm the note name before clearing. This removes only RecallCheck comments above tasks, preserving checkboxes (including [x]), note content, code examples and other plugins’ comments. Unchecked tasks whose comments are removed become Untested; checked tasks remain Remembered.
Status comment lines are hidden in the editor by default. Move the cursor onto a comment line to reveal and edit it. Toggle visibility in Settings → Recall Check, or run Toggle status comment visibility from the command palette. Reading view hides HTML comments through normal Markdown rendering.
Only RecallCheck’s task comments are affected. Other comments, including Easy Recall’s <!--SR:...-->, are preserved.
Each rating uses Obsidian’s atomic Vault.process() API and checks the latest task sequence before saving. Duplicate questions are tracked separately, and unrelated prose edits are retained. If a question or its status is edited, inserted, removed or reordered during a session, grading pauses and asks you to restart from the latest note.
Recall Check has no database, account, cloud service, telemetry or analytics. It makes no network requests of its own and does not upload your notes. Ratings stay in local Markdown; only your filter, order, annotation and answer underline preferences are saved in the plugin’s local configuration. Session history stays in memory. Your notes remain readable after uninstalling the plugin.
Requires Obsidian 1.8.7 or newer. Desktop is the primary tested target; mobile compatibility has not been verified.
Install from the Obsidian Community directory, or open Settings → Community plugins → Browse, search for Recall Check, then install and enable it.
To install from a GitHub release:
main.js, manifest.json and styles.css from a GitHub release, or build them from source.<Vault>/.obsidian/plugins/recall-check/ and put the three files inside it.npm ci
npm run verify
verify checks formatting, runs the tests, builds the production bundle and validates release metadata. Use npm run dev for watch mode.
See the development guide for architecture and build commands, TESTING.md for in-app checks, and the release guide for publication. Bug reports are most useful with your Obsidian version, reproduction steps and a small synthetic note.
MIT · Created by Zhi Fu.