A local, offline flashcard app that parses Markdown files into decks and studies them using SM-2 spaced repetition.
git clone https://github.com/johnfire/flashmd-python
cd flashmd-python
bash install-linux.shInstalls a virtual environment, the app, and a desktop launcher (shows up in your app menu).
Requires tkinter. If the installer reports it missing:
- Debian/Ubuntu:
sudo apt install python3-tk- Fedora:
sudo dnf install python3-tkinter
git clone https://github.com/johnfire/flashmd-python
cd flashmd-python
bash install-mac.shInstalls a virtual environment and creates ~/Applications/FlashMD.app. Double-click it to launch, or drag it to your Dock.
Requires Python 3.10+. Download from python.org or
brew install python. If tkinter is missing:brew install python-tk
- Install Python 3.10+ — check "Add Python to PATH" during setup
- Clone or download the ZIP and unzip
- Double-click
install-windows.bat
Creates a virtual environment and adds FlashMD shortcuts to your Desktop and Start Menu.
The Android app lives in a separate repo: flashmd-android
Requirements: Android Studio Hedgehog or later, Android SDK 26+, JDK 17
- Clone
https://github.com/johnfire/flashmd-android - Open Android Studio → File → Open → select the
flashmd-android/folder - Android Studio downloads Gradle and syncs automatically (first run takes a few minutes)
- Connect your device or start an emulator, then click Run ▶
git clone https://github.com/johnfire/flashmd-android
cd flashmd-android
./gradlew installDebug # builds and installs on a connected device- Settings → About Phone → tap Build Number 7 times to unlock Developer Options
- Settings → Developer Options → enable USB Debugging
- Connect via USB and tap Trust on the device prompt
- Settings → Developer Options → Wireless Debugging → enable
- Tap "Pair device with pairing code" — note the IP, port, and code
- In Android Studio: Run → Pair Devices Using Wi-Fi → enter the pairing code
A single .md file = one deck. Cards follow this pattern:
# Deck Title
## Category Name
**1. TERM — Full Term Name**
Definition paragraph.
Second paragraph if needed.
# Linux / macOS
.venv/bin/flashmd
# Windows
.venv\Scripts\flashmd.exepip install pytest
pytestIf FlashMD is useful to you and you'd like to help keep projects like this going, a small donation is always appreciated:
MIT — Copyright (c) 2025 Christopher Rehm