Flashly is a powerful Obsidian plugin that transforms your notes into flashcards using spaced repetition learning powered by FSRS (Free Spaced Repetition Scheduler).
Flashly supports four different flashcard formats to match your note-taking style:
What is the capital of France::Paris
What is 2+2::4What is photosynthesis?
??
The process by which plants convert light energy into chemical energy.The {mitochondria} is the powerhouse of the cell.
Paris is the capital of {France}.## What is a cell?
The basic structural unit of all living organisms.
## What is the function of mitochondria?
Mitochondria are the powerhouse of the cell, responsible for producing ATP.Flashly supports audio files in flashcards for enhanced learning:
- Audio in flashcards: Embed audio files using Obsidian wikilinks (
![[audio.mp3]]) - Audio playback: Audio controls in review sessions and quiz questions
- Supported formats: MP3, WAV, OGG, M4A, FLAC, AAC
- Audio transcription: Optional AI transcription for quiz generation (transcribes audio content to help AI generate better questions)
Example with audio:
What is the Spanish word for "hello"?
![[hello-spanish.mp3]]
??
Hola
Listen to the pronunciation::![[pronunciation.mp3]]Audio settings (Settings β Flashly β Review):
- Auto-play audio: Automatically play audio when card is shown (disabled by default)
- Stop on flip: Stop audio playback when flipping to answer side
- Automatic deck creation from note filenames
- Custom deck names via frontmatter
deck:property - Subtag-based decks:
#flashcards/biologycreates a "biology" deck - Flexible deck hierarchy based on your tag structure
Flashly uses the modern FSRS (Free Spaced Repetition Scheduler) algorithm for optimal learning efficiency:
- 20% fewer reviews compared to traditional SM-2
- Adaptive scheduling based on your performance
- SM-2 fallback option available in settings
A powerful browser view to manage your flashcards:
- Deck overview with statistics
- Search and filter by deck, status, or content
- Study directly from the browser
- Track progress for each deck
- Keyboard shortcuts for quick reviews (Space, 1-4, Esc)
- Card flipping animation for better UX
- Progress tracking during sessions
- Session summaries with detailed statistics
When you first activate Flashly, an interactive tutorial will guide you through:
- Creating flashcards (Q&A, cloze, header-based)
- Scanning your vault for flashcards
- Starting review sessions
- Using the Flashcard Browser
You can replay the tutorial anytime:
- From Settings: Flashly β Tutorial β "Start Tutorial"
- From Command Palette: "Flashly: Replay Tutorial"
Important: Flashly only parses notes that are explicitly tagged for flashcard parsing.
Add the flashcards tag to your note's frontmatter:
---
tags: [flashcards]
---Without this tag, your note will be ignored during scanning, even if it contains flashcard syntax.
Once your note is tagged, you can use any of the supported flashcard formats:
---
tags: [flashcards]
deck: Spanish Vocabulary
---
# Spanish Study Notes
Hola::Hello
AdiΓ³s::Goodbye
## What does "gracias" mean?
Thank youUse the command palette (Ctrl/Cmd+P) and run:
- "Flashly: Scan vault for flashcards"
This will find all flashcards in tagged notes and add them to your collection.
Click the flashcard icon in the ribbon or use the command:
- "Flashly: Open Flashcard Browser"
Browse your decks and start reviewing!
You can configure custom tags in Settings β Flashly β Header-Based Flashcards.
Default tags: flashcards, cards
Control how your flashcards are organized into decks:
Option 1: Frontmatter deck property
---
tags: [flashcards]
deck: My Custom Deck
---Option 2: Subtags
---
tags: [flashcards/biology]
---This creates a "biology" deck.
Option 3: Auto-naming (Default) If no custom deck is specified, cards use the note's filename as the deck name.
Choose between FSRS (default) and SM-2 algorithms in the settings:
- FSRS: Modern, adaptive, 20% more efficient
- SM-2: Traditional, reliable fallback option
Configure daily limits:
- Review limit: Maximum due cards per day
- New cards limit: Maximum new cards introduced per day
- Open Settings β Community Plugins
- Search for "Flashly"
- Click Install, then Enable
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create a folder:
<vault>/.obsidian/plugins/flashly/ - Copy the files into that folder
- Reload Obsidian
- Enable the plugin in Settings β Community Plugins
npm installnpm run devnpm run buildnpm testMake sure your note has the flashcards tag in frontmatter:
---
tags: [flashcards]
---Without this tag, the note will not be scanned.
If you're seeing flashcards from notes you didn't intend to parse, check if those notes have the flashcards tag. Remove the tag from notes you don't want parsed, then re-scan your vault.
- Remove the
flashcardstag from the note - Run "Scan vault for flashcards" again
- The cards from that note will be automatically deleted
Check your settings:
- Make sure you have cards due for review
- Check if deck filters are limiting which cards appear
- Verify that daily limits haven't been reached
See the examples/ folder for comprehensive demonstrations of all features:
complete-example.md- Full feature showcaseinline-tag-example.md- Inline format examples
Contributions are welcome! Please see the development section above for setup instructions.
MIT License - See LICENSE file for details
- Support on Ko-fi - If you find Flashly useful, consider supporting development
- Report a Bug
- Request a Feature
- Documentation
Flashly includes powerful quiz generation capabilities with optional AI enhancement.
Generate quizzes automatically from your flashcards using rule-based algorithms:
Question Types:
- Multiple Choice: Uses other cards from the same deck as plausible distractors
- Fill-in-the-Blank: Extracted from cloze deletions
{text} - True/False: Creates statements to validate understanding
How to Use:
- Run command: "Generate Quiz"
- Configure:
- Number of questions
- Question types to include
- Deck filter (optional)
- Click "Generate Quiz"
- Take your quiz!
NEW! Use AI to generate creative, contextual quiz questions from your flashcards.
OpenAI (GPT-4, GPT-4 Turbo, GPT-3.5)
- Most capable and widely used
- Great for creative question generation
- Requires OpenAI API key
Anthropic (Claude 3.5 Sonnet, Opus, Haiku)
- Excellent at educational content
- Strong reasoning capabilities
- Requires Anthropic API key
Google Gemini (Gemini 1.5 Pro, Flash, Flash-8B)
- Fast and efficient
- Strong multimodal capabilities
- Requires Google AI Studio API key
- Cost-effective option
Custom API
- Any OpenAI-compatible endpoint
- Local models (Ollama, LM Studio, etc.)
- Complete control over your data
- Enable AI in Settings β Flashly β Quiz Generation
- Choose Provider: OpenAI, Anthropic, Gemini, or Custom
- Configure API Key and model
- Adjust Settings (optional):
- Temperature (creativity level)
- Max tokens (response length)
- Custom system prompt
For OpenAI:
- Get API key from OpenAI Platform
- Paste in Settings β Quiz Generation β OpenAI Configuration
For Anthropic:
- Get API key from Anthropic Console
- Paste in Settings β Quiz Generation β Anthropic Configuration
For Google Gemini:
- Get API key from Google AI Studio
- Paste in Settings β Quiz Generation β Gemini Configuration
For Custom/Local Models:
- Set base URL (e.g.,
http://localhost:11434/v1for Ollama) - Add API key if required
- Specify model name
- Run "Generate Quiz" command
- Configure your quiz
- Toggle "Use AI to generate questions" β¨
- Click "Generate Quiz"
- AI will create contextual, creative questions!
Benefits of AI Generation:
- More natural question phrasing
- Better context understanding
- Creative variations on concepts
- Explanation generation
- Adaptive difficulty
- Audio transcription support (AI can understand audio content in flashcards when generating questions)
Privacy Note: When using cloud providers (OpenAI/Anthropic), your flashcard content is sent to their servers. Use local models if you need complete privacy.
Sync your Flashly cards directly to Anki without exporting CSV files!
AnkiConnect is an Anki add-on that provides an API for external applications to communicate with Anki.
- Open Anki
- Go to Tools β Add-ons β Get Add-ons
- Enter code:
2055492159 - Click OK and restart Anki
AnkiConnect needs to allow requests from Obsidian. Edit the AnkiConnect configuration:
- In Anki, go to Tools β Add-ons
- Select AnkiConnect β Click Config
- Find the
webCorsOriginListsetting - Add
"app://obsidian.md"to the list:
{
"apiKey": null,
"apiLogPath": null,
"webBindAddress": "127.0.0.1",
"webBindPort": 8765,
"webCorsOriginList": [
"http://localhost",
"app://obsidian.md"
]
}- Click OK and restart Anki
Important: Without adding app://obsidian.md to the CORS list, you'll get CORS errors and syncing will fail.
- Open Obsidian Settings β Flashly β Export
- Toggle "Enable AnkiConnect" on
- (Optional) Change URL if Anki is running on a different port
- Click "Test connection" to verify setup
Once configured, you have two ways to sync:
Method 1: Export Modal
- Run command: "Export flashcards"
- Select decks to sync
- Click "Sync to Anki" button (requires Anki running)
Method 2: Export as CSV
- Use format "Anki (CSV file)" to export a file
- Import manually into Anki via File β Import
- Direct sync: No CSV files needed
- Media support: Automatically uploads images and audio files
- Duplicate detection: Skips cards that already exist
- Deck creation: Creates decks automatically if they don't exist
- Progress feedback: Shows success/failure counts
CORS Error:
Access to fetch has been blocked by CORS policy
Solution: Make sure you added "app://obsidian.md" to AnkiConnect's webCorsOriginList (see Step 2 above)
Connection Refused:
Failed to connect to AnkiConnect
Solution:
- Make sure Anki is running
- Verify AnkiConnect add-on is installed
- Check that the URL in settings matches (default:
http://127.0.0.1:8765)
Media Upload Fails:
- Files over 10MB are skipped
- Check that media files exist in your vault
- Verify file paths in your flashcards are correct
Track your learning progress with comprehensive statistics:
- Overview Cards: Total cards, due today, new cards, review cards
- Deck Breakdown: Detailed stats per deck with progress bars
- Activity Heatmap: 30-day review activity visualization
- Card Distribution: Visual breakdown by learning state
- Quiz Statistics: Quiz history and performance metrics
Access via command: "View Statistics"
- Export flashcards to various formats
- AI quiz customization
- Deck and quiz sharing and collaboration



