Sawyer Rensel69 downloadsAbsorb knowledge faster. Turn your notes into interactive mind maps you study with spaced repetition.
Map your mind. Build your memory. An Obsidian plugin that turns your notes into interactive mind maps you study with spaced repetition
Osmosis turns your Markdown notes into interactive mind maps — and then makes the map itself the thing you study. Every line of a note can become a scheduled flashcard, so nodes on the map hide behind ?, you tap to recall, and you rate with FSRS right where each fact sits in your knowledge structure. No duplicate content, no external tools, no proprietary formats.

? placeholders while the rest of the map stays visible. Tap to recall, rate with FSRS, and never lose sight of how the fact connects to everything around it.Mind maps are great for building understanding and flashcards are great for keeping it — but every other tool makes you do those in two different apps, from two different copies of the same material. Osmosis collapses them: the map you built is the surface you study.
🧭 Study on the map, not in a modal. Start a spatial session and the nodes you owe a review hide behind ? — everything else stays on screen. You recall each fact while looking at its parent, its siblings, and the branch it belongs to, so you're rehearsing the structure and the content at once. No other tool reviews cards inside the shape of your knowledge.
🌱 No card authoring step. Run Generate flashcards from note and every heading, bullet, and paragraph gets a native Obsidian block ID — that's the card. Write your notes the way you always have; the study material is already there. IDs survive edits, reorders, and renames, so scheduling history sticks to the line.
🗺️ Not just a viewer — a full editor. Tools like Markmap render beautiful mind maps from Markdown, but they're read-only. Osmosis mind maps are fully interactive — add nodes, edit text, rearrange branches — and every change writes back to your Markdown instantly.
🔓 Not proprietary — plain Markdown. Tools like Xmind are powerful mind mappers, but your data lives in a proprietary format. Markdown export is an afterthought. With Osmosis, Markdown is the format. Your notes work everywhere, with every tool, forever.
🤖 AI-native by design. Plain Markdown means AI assistants can read, generate, and edit your content natively — flashcards, mind maps, study material — no export, no conversion, no friction.
🧩 Notes + mind maps + flashcards in one file. Other tools force you to maintain these in separate apps. Osmosis unifies all three in a single Markdown file. Your headings become mind map branches, your lines become cards, and your osmosis code fences become hand-authored cards. One file, three views, zero duplication.
📝 One card, everywhere you study it. A node on the map, a line in your reading view, and an entry in the sequential queue are the same card with the same schedule. Review a branch on the map in the morning and those cards are gone from tonight's queue.
🔗 Study a map of maps. Embed one mind map inside another with ![[note]] and build a master map of an entire subject. Embedded nodes are first-class in spatial study — they hide, reveal, and rate like local ones, and each rating is written back to the note that actually owns the line.
The Med Student — You're drowning in anatomy, pharmacology, and pathology. You already use Anki, but maintaining two separate systems — notes and flashcards — is killing your workflow. Osmosis lets you define flashcards right inside your lecture notes, so your study material lives where you take notes. Mind maps help you see how body systems connect. FSRS keeps you on schedule.
The Self-Taught Developer — You're learning a new language, framework, or codebase on your own. Code cloze cards let you drill syntax and API patterns. Mind maps give you the big-picture architecture view. Everything stays in the same Markdown files you already take notes in.
The Lifelong Learner — You read books, watch lectures, and take notes — but forget most of it within weeks. Spaced repetition fixes that. With Osmosis the notes you already wrote are the cards: one command turns a note into a deck, and you review it on its own mind map. No separate app, no export step, no card-writing chore standing between reading and retaining.
The Obsidian Power User — You've built your second brain in Obsidian and you want mind mapping and spaced repetition without leaving the ecosystem. No proprietary formats, no external accounts, no sync issues. Plain Markdown, full ownership.
The Visual Thinker — Outlines and bullet points don't click for you. You need to see the structure, and a flashcard stripped out of its context is exactly the wrong format. Osmosis turns any Markdown file into an interactive mind map you can edit, rearrange, and review on — so recall happens at the position on the map where you learned it.

Your Markdown rendered as a fully interactive mind map:

Click the graduation cap in the mind map header and the map becomes a review session:
? — the rest of the map stays visible, because seeing how the pieces fit together is the point1), Hard (2), Good (3), Easy (4)4/9 due reviewed) with a Stop button

Line cards from your notes and fence cards you author by hand share one queue and one scheduler. Fence cards come in five types:
==highlighted== or **bold** markers
Central hub for all your study sessions:
Run Generate flashcards from note from the command palette (or right-click the note > Generate flashcards). Osmosis previews every line it will tag, then writes block IDs in a single undoable edit:
- Pour water at 96 °C in slow circles ^os-a1b2c3
Each tagged line is now an FSRS-scheduled card. Re-running the command is incremental — existing IDs and their history are left alone.
? — tap one to reveal it, then rate itRatings are saved to the note's osmosis-schedule frontmatter, so the schedule travels with the note.
For a question that isn't just a line of your notes, add an osmosis code fence:
```osmosis
Which brew method uses full immersion?
***
French press
```
Add osmosis-cards: true to your note's frontmatter:
---
osmosis-cards: true
---
Or configure tag/folder-based inclusion in Settings > Osmosis. (Generating flashcards adds this for you.)
Click the graduation cap icon in the sidebar to open the Dashboard. It shows your decks and due card counts across the vault. Click any deck to start a sequential session.
Line cards need no syntax — they're just your notes with block IDs. The card types below are for hand-authored cards, and all use the osmosis code fence with *** as the separator.
```osmosis
What is the powerhouse of the cell?
***
The mitochondria
```
```osmosis
bidi: true
Mitochondria
***
The powerhouse of the cell
```
```osmosis
type-in: true
The powerhouse of the cell is the ___
***
mitochondria
```
Use ==highlights== or **bold** to mark deletions. Each marked term generates a separate card.
```osmosis
==Mitochondria== are the ==powerhouse== of the ==cell==
```
Use osmosis-cloze in a comment to mark lines for deletion. Use osmosis-cloze-start / osmosis-cloze-end for multi-line regions.
````osmosis
```python
def fibonacci(n):
if n <= 1:
return n # osmosis-cloze
return fibonacci(n-1) + fibonacci(n-2)
```
````
main.js, styles.css, and manifest.json from the latest release.obsidian/plugins/osmosis/ directory, creating it if needed| Component | Technology |
|---|---|
| Language | TypeScript |
| Platform | Obsidian Plugin API |
| Spaced Repetition | FSRS |
| Testing | Vitest (unit), Playwright (E2E) |
| Linting | ESLint with obsidianmd plugin |
Full documentation is available at sawyerrensel.github.io/Osmosis:
# Clone the repository
git clone https://github.com/SawyerRensel/Osmosis.git
cd Osmosis
# Install dependencies
npm install
# Build for development (watches for changes)
npm run dev
# Build for production
npm run build
Build output goes to vault/.obsidian/plugins/Osmosis/ for testing.
Contributions are welcome! Please:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.
Author: Sawyer Rensel (@SawyerRensel)