Turn your own notes into an adaptive active-recall system. Wetstone reads the folders you choose, uses an LLM (with a key you supply) to extract the concepts worth remembering, writes quiz questions for them, and then quizzes you on a spaced-repetition schedule that adapts to what you actually know.
Yes, "wetstone" is spelled that way on purpose.
- Obsidian 1.7.2 or newer, on desktop or mobile.
- An API key for one of: an OpenAI-compatible API, Anthropic, Google Gemini, or a local/self-hosted endpoint (for example Ollama). You supply and pay for your own key; the plugin ships with none.
From Obsidian: Settings → Community plugins → Browse, search for "Wetstone", install, and enable.
Manual: download main.js, manifest.json, and styles.css from the
latest release into <vault>/.obsidian/plugins/wetstone/, then enable the
plugin.
- Open Settings → Wetstone. Pick a provider, paste your API key, and choose a model.
- Add one or more scope folders: the notes in them become quiz material.
- Open Wetstone from the ribbon (the brain icon) and choose Update questions from notes. The first run reads your notes and writes a question bank; re-running only touches notes that changed.
- Choose a deck and Start quiz. Answer honestly, including the "Not sure yet" button, so the schedule reflects what you really know.
Wetstone writes the format that best fits each fact: multiple choice, true/false, multiple select, fill in the blank (typed, normalized), ordering, and cloze (fill in the blanks from dropdowns).
Scheduling uses FSRS spaced repetition and runs entirely on your device, offline. Wetstone tracks what you know per concept, rotates between question variants so you learn the idea rather than one phrasing, and occasionally serves a fresh angle to catch answers that are familiar rather than truly known. Your question bank, scheduling state, and daily review logs are plain markdown and JSON files in a folder inside your vault, so they are greppable, diffable, and yours.
- What leaves your vault: when you update questions, the content of the notes in your scope folders is sent to the LLM provider you configured, in order to extract concepts and write questions. Nothing else is sent anywhere. Reviewing is fully local and offline.
- Your API key is stored in plaintext in
data.jsoninside your vault, and syncs wherever your vault syncs. Treat your vault accordingly. - No telemetry. Wetstone makes no network calls other than to the provider endpoint you set.
For a detailed activity log while diagnosing an issue, turn on Debug logging in settings; it prints ingestion, review, and top-up activity to the developer console. It is off by default.
0-BSD. See LICENSE.
npm install
npm run dev # watch build
npm run build # lint (zero warnings) + typecheck + production build
npm test # unit tests for the pure coreThe build fails on any eslint-plugin-obsidianmd violation by design.