by Muhammad Younas
Spaced-repetition reviews, tiered exams, CTF-style labs and a skill radar over your notes, marked and written by Claude through the Claude Code CLI. No API key.
Recall Lab
Turn your Obsidian notes into long-term memory.
Spaced-repetition reviews, tiered exams, CTF-style labs and a skill radar over your own notes.
Claude writes them and marks open answers through the Claude Code CLI, so you don't need an API key.
Install · Quick start · User guide · Question format · Development · Changelog
Features
- A daily review scheduled by FSRS. The questions you are closest to forgetting come first, then new ones up to a daily limit.
- Exams in three tiers: easy (recall), hard (application) and brutal (synthesis and hands-on). Claude writes them from each note. Hard unlocks once you own 80% of a note's Easy questions, and Brutal once you own 80% of its Hard ones.
- More than multiple choice: written and shell-command answers, click the bug, register traces, ordering and matching. Your own
==highlights==also become fill-in-the-blank questions, which join your daily review as soon as you write them. - CTF-style labs: one source file, a hidden flag, and three hints of a few words each.
- Memory on your notes: a dot on each heading that has questions, plus a due count in each note's footer and in the status bar.
- A skill radar for each course and for the whole vault. Each spoke is the score you could expect on that skill area today.
- Help when you are stuck: a nudge and a second try, guided steps, a leech clinic, Write it all down and Teach it back.
A quick tour
Reviews and exams
Every question has three submit buttons. Picking Guessing or Sure changes when the question comes back. You can also answer from the keyboard with 1–9, Enter, G and S.

Skill radar
Claude names 5–7 skill areas for each course. Each spoke shows the score you could expect on that area today. It counts questions you haven't answered yet as zero, and it fades between reviews.

Courses
Each note in a course can have a quiz and three labs, plus two exercises led by Claude: Write it all down (the pencil) and Teach it back (the speech bubble).

Labs
A lab gives you one source file with a flag hidden in it, and you can solve it just by reading. The flag is checked on your device, and only its SHA-256 hash is stored.

Hints are nudges of a few words, the way a CTF writes them. Each hint costs 15% of the lab's score.

Memory on your notes
In reading view, each heading that has questions gets a dot. Green means an expected score of 80% or more, amber 50% or more, red below that, and grey means no answers yet.

Each note's footer shows what is due in the note and has a button to review it. Complete marks the note as read and builds its quiz. The status bar shows how many questions are due today.

History
History shows your sessions and scores, and a year of activity with your streak. It also shows how often you were right when you said Sure.

How it works
sequenceDiagram
actor You
participant RL as Recall Lab
participant V as Vault (_quiz/)
participant C as Claude Code CLI
You->>RL: Mark a note complete
RL->>C: Write a quiz from the note
C-->>RL: Questions, as JSON
RL->>V: Check them and save the quiz
You->>RL: Take an exam or today's review
RL->>RL: Mark choice, hands-on and fill-in questions on your device
RL->>C: Mark written answers
C-->>RL: Score, feedback, missed points
RL->>V: Save each answer to attempts.json
RL->>RL: FSRS works out what is due, and when
RL-->>You: Today's review, memory dots on notes, skill radar
- Marked on your device. Choice, hands-on and fill-in-the-blank questions are marked instantly, offline.
- Marked by Claude. Written, command and image answers go to the Claude Code CLI with the question's rubric and the strictness you chose. If an answer matches the question's accept pattern, it passes without a request. If Claude can't be reached, the answer is kept, but it never counts against you.
- Scheduled from your history. Every answer is saved to
_quiz/progress/attempts.json. The schedule is rebuilt from that file each time, so it always matches your real history.
Requirements
- Obsidian 1.7.2 or later, on desktop.
- The Claude Code CLI, installed and signed in. Recall Lab finds it in the usual install locations. If it doesn't, set Settings → Recall Lab → Path to the Claude binary, then press Test under Check the connection.
- macOS or Linux. Recall Lab is developed and tested on macOS. Windows is untested. It also needs
claude.exefrom Claude Code's native installer; an npm install only providesclaude.cmd, which Recall Lab can't start.
Install
From Obsidian:
- Open Settings → Community plugins and turn off Restricted mode if it is on.
- Select Browse and search for Recall Lab.
- Select Install, then Enable.
Updates then arrive through Obsidian. The plugin's page in the directory is community.obsidian.md/plugins/recall-lab.
By hand:
- From the latest release, download
main.js,manifest.jsonandstyles.css. - Put the three files directly in
<vault>/.obsidian/plugins/recall-lab/. - Reload Obsidian, then enable Recall Lab under Settings → Community plugins.
Each file has a GitHub build attestation. gh attestation verify main.js -R MYounas126/recall-lab checks it was built from this repository. To update by hand, replace the three files and reload Obsidian.
Your quizzes, labs and history live in the vault, so they are kept across updates.
Quick start
- Open Recall Lab with the graduation-cap icon in the ribbon, or run Recall Lab: Open view.
- Pick a folder of notes under Folders and press Set up this course. Claude reads a sample of the notes and names the course's skill areas.
- To build a quiz, press Generate next to a note. Or press Complete at the end of a note you have finished reading.
- Press Exam to take the quiz. After that, the questions you need appear in Today's review on the overview.
Documentation
- User guide: every feature, plus settings, commands, keyboard shortcuts and the files Recall Lab keeps.
- Question bank format: the JSON format quizzes are stored in, for editing quizzes or writing your own.
- Development: building, testing, CI and how releases are made.
- Changelog: what each release added and fixed.
- Contributing: how to report a bug or send a change.
Privacy and disclosures
-
A Claude account and plan. Writing quizzes, labs and a course's skill areas, and marking written answers, needs Claude. Recall Lab uses the Claude Code CLI on your own subscription. It has no API key of its own and charges nothing.
Once a quiz exists, the following work without Claude:
- its choice, hands-on and fill-in-the-blank questions;
- your reviews of them;
- the radar and History.
-
Network use. Recall Lab makes no network requests of its own. The Claude Code CLI it starts sends the note or answer involved to Anthropic.
-
Programs it runs. Recall Lab is desktop only. It starts the
claudecommand-line tool. To find it, it checks the usual install locations, then asks your login shell (command -v claude). -
Files outside the vault. Everything Recall Lab keeps is in your vault, under
_quiz/. The one exception is a lab you choose to write to disk, so you can compile or run it yourself: its files go to~/RecallLab/labs/. Recall Lab never runs them. -
Nothing else. There is no telemetry, no ads and no Recall Lab account. Lab flags are stored only as SHA-256 hashes.
License
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.