A cross-platform desktop flashcard application with spaced repetition scheduling (SRS). Built with Electron and React, it integrates seamlessly with Obsidian vaults by storing flashcards as markdown files.
- Spaced Repetition Algorithm: SM2-like scheduling with customizable ease and interval settings
- Multiple Card Formats:
- Multi-line cards using
?(or??for bidirectional) - Inline cards using
::(or:::for bidirectional) - Cloze deletions with
==highlighted==or{{curly}}syntax
- Multi-line cards using
- Obsidian Integration: Works directly with your Obsidian vault - no data migration needed
- File Watching: Auto-syncs when markdown files change externally
- Keyboard-First Design: Space to flip cards, 1-4 for responses, Escape to exit
- Statistics Tracking: Monitor your review progress and scheduling
Multi-line card:
What is the capital of France?
?
ParisInline card:
Capital of France::ParisCloze deletion:
The capital of France is ==Paris==.- Electron - Cross-platform desktop framework
- React - UI framework
- TypeScript - Type-safe development
- Zustand - State management
- Vite - Build tool
- Tailwind CSS - Styling
# Install dependencies
npm install
# Run in development mode
npm run electron:dev
# Build for production
npm run build
# Package for distribution
npm run dist- Select your Obsidian vault folder
- The app scans for markdown files and extracts flashcards
- Files are grouped by folder into "decks"
- Cards are filtered by due date for review
- Your responses update scheduling metadata directly in the markdown files
Scheduling data is stored inline as HTML comments:
What is 2+2?
?
4
<!--SR:!2024-02-15,7,250-->MIT