Awesome FSRS 
A curated list of awesome FSRS implementations, papers and resources. Feel free to suggest new projects in Issues or PR directly.
Implementation
- Python
- Scheduler (v6) + Optimizer: py-fsrs
- Scheduler (v5): rs-fsrs-python
- Optimizer (v6): fsrs-optimizer
- Optimizer (v6): fsrs-rs-python
- [Deprecated] Optimizer: fsrs-optimizer-tiny
- Rust
- Scheduler (v5): rs-fsrs
- Scheduler (v6) + Optimizer: fsrs-rs
- Run in browsers: fsrs-browser
- TypeScript
- Scheduler (v6): ts-fsrs
- Go
- Scheduler (v5): go-fsrs
- Java
- Scheduler (v5): rs-fsrs-java
- Scala
- Scheduler (v6): fsrs4s
- C
- Scheduler (v5): rs-fsrs-c
- Nodejs
- Scheduler (v5): rs-fsrs-nodejs
- Dart
- Scheduler (v4.5): dart-fsrs
- Swift
- Scheduler (v5): swift-fsrs
- Clojure/ClojureScript
- Scheduler (v4): cljc-fsrs
- Ruby
- Scheduler (v4): rb-fsrs
- Kotlin
- Scheduler (v6): FSRS-Kotlin
- Scheduler (v4): android-fsrs
- Elixir
- Scheduler (v4): ex_fsrs
- OCaml
- Scheduler (v5): ocaml-fsrs
- Lisp
- Scheduler (v6): lisp-fsrs
Application
General Flashcard
Anki
Free and open source, content-agnostic flashcard application for Windows, Mac, Linux, iPhone, and Android. Supports text, images, audio, videos, and scientific markup (via LaTex). Offers free synchronization service using AnkiWeb, with community-shared add-ons and decks.
- FSRS available as an opt-in feature replacing the default SM-2 algorithm.
- Additionally, this add-on offers a variety of extra features, such as Postpone, Advance, Load Balancing and Easy Days.
Flipnem
An Anki compatible online Flashcard platform that supports PWA install.
- Mnemonics, Deck Encryption, Deck Sharing, and an optional public profile to show off your progress
- An MCP server that allows user to connect their own AI agent to their collections for quizzing, deck management, and mnemonic reinforcement.
- Free and paid tiers
- FSRS scheduled flashcard reviews that rely on rs-fsrs
Markji
Markji is a flashcard application designed to help users efficiently memorize and retain information. It's particularly popular for language learning, exam preparation, and other memorization-heavy subjects. The app is developed by MaiMemo Inc., the company also behind the popular language-learning APP in China, MaiMemo.
- Markji uses the MMX algorithm, a variant of FSRS developed by the same creator.
Mochi Cards
Mochi Cards is a modern, Markdown-powered flashcard app available on Web, Desktop (Windows/macOS/Linux), and Mobile (iOS/Android).
- Use Markdown to create flexible, multi-sided flashcards and notes
- Create links between cards and notes, embed images/audio/video, cloze deletions
- Study using Spaced Repetition and optional FSRS algorithm for smarter scheduling
- Offline-first by default; sync securely across devices with a Pro subscription
- Import Anki decks or export
.mochipackages for backup and sharing
Quanta
Quanta is an AI-powered flashcard and exam platform for German-speaking students (DACH region). It combines citation-first AI generation — where every card links to verifiable academic sources (Google Scholar, Wikipedia, textbooks) — with Bloom taxonomy control, LaTeX rendering, and MC quiz generation following Haladyna & Downing distractor guidelines.
- Quanta uses ts-fsrs for native FSRS-6 scheduling across all review modes (classic, endless, exam simulation).
- AI generates flashcards from topic, PDF, photo, or URL with mandatory source declaration before card creation (≥0.90 confidence threshold).
- Includes interactive Bloom taxonomy pyramid, Feynman method AI tutor, and 350+ German study programs with context-aware generation.
- Free tier includes FSRS-6 spaced repetition forever (50 AI cards/month). Pro €8/mo, Evo €14/mo with student discounts.
Rember
A simple yet powerful spaced repetition system designed to help you remember more. It uses AI to automatically generate cards and FSRS-5 to schedule your reviews.
Rember uses ts-fsrs.
Revu
Revu is a local-first spaced repetition app for macOS built with SwiftUI. It features a Notion-inspired interface, Anki import (.apkg/.colpkg), study guides, exams, and workload forecasting.
Revu uses swift-fsrs.
SpacedCards
SpacedCards is an iOS flashcard app which forces students to review cards to unlock scrolltime. It works offline, is customizable & has AI for generating cards (images, audio or PDFs).
SpacedCards uses dart-fsrs.
spacedrep
A CLI and MCP server for spaced repetition with .apkg import/export. Designed for scripting and AI agent workflows, no GUI required. Available on PyPI.
spacedrep uses py-fsrs.
Note-taking
Logseq
A privacy-first, open-source platform for knowledge management and collaboration. It focuses on privacy, longevity, and user control.
Logseq uses cljc-fsrs in its database version.
Obsidian
A personal notes, journaling, knowledge base, and project management application that allows the user to easily visualize relationships between information in graph form. Connect your notes via hyperlinks and install many community plugins made for Obsidian.
-
obsidian-spaced-repetition-recall is a modified version of obsidian-spaced-repetition and merging recall plugin to use seperate json data file. It uses FSRS-6.
-
HiNote is a powerful Obsidian extension that helps you add comments to highlighted notes, use AI for thinking, and FSRS-6 for memory.
-
LearnKit helps you remember what you write. It brings flashcards, note review, tests, and AI-assisted study tools into Obsidian, so your vault becomes a place to learn, not just store information. It uses FSRS-6 for spaced repetition scheduling.
-
True Recall is a next-gen spaced repetition system for Obsidian with AI card generation, local-first SQLite storage, Anki import/export, projects system, and comprehensive analytics. It uses FSRS-6 via ts-fsrs.
Org-srs
Org-srs is a feature-rich and extensible spaced repetition system integrated with Org-mode, letting you learn and review without leaving Emacs.
- Keeps review data and configuration in Org files, making sync and version control straightforward.
- Bundles FSRS with parameter tuning, advanced scheduling features, and optional caching for large collections.
- Extensible via hooks with embeddable entries, rich item types, charts, and touchscreen-friendly controls.
Org-fc
Org-fc brings spaced repetition to Org-mode through flexible flashcard templates.
- Marks Org headlines as cards with cloze, list, and custom layouts.
- Includes experimental FSRS-6 scheduling powered by a Python helper.
- Provides guides, migration tools, and mailing lists to support long-term study workflows.
RemNote
Multiplatform note-taking application with a simple and streamlined process of creating flashcards. Has an active community with student-made materials for exam preparation. Available for offline and online usage.
RemNote integrated FSRS-4.5 into its scheduling system in release 1.16.
SiYuan
SiYuan is a privacy-first, self-hosted, open source personal knowledge management system, written in TypeScript and Golang. It supports fine-grained block-level reference and markdown WYSIWYG.
SiYuan's uses FSRS-5: riff
TiddlyWiki
TiddlyWiki is a customizable single HTML file personal wiki for creating interlinked notes. Its open-source nature and plugin ecosystem make it adaptable for various uses, from project management to knowledge systems. With the FSRS plugin, TiddlyWiki can also be used as a flashcard app for learning and memorization.
FSRS is available as a fork of the Tidme plugin for TiddlyWiki: fsrs4tw
ZKMemo
ZKMemo is a free, offline-first note-taking and learning software that combines FSRS-based spaced repetition with incremental reading. It features a SuperMemo-like interface, tree-structured knowledge management, AI integration, and Zettelkasten linking.
- ZKMemo integrates FSRS-6, implemented using the srs-everything.
- Getting Started
Incremental Reading
Foliole
Foliole is an approachable incremental reading app for making reading actually complete.
Open source, open data, local first.
Native incremental reading with integrated FSRS scheduling, powered by ts-fsrs.
Specialized Flashcard
AI Japanese Tutor
AI Japanese Tutor blends voice-based Japanese verb conjugation practice with SRS-powered flashcards for JLPT N5 - N1 grammar and vocabulary.
- It uses ts-fsrs to schedule reviews of JLPT N5 - N1 vocabulary and grammar flashcards.
- Speech-based JLPT grammar flashcard reviews: translate English prompts into Japanese aloud, applying grammar points in context while reinforcing memory through speech.
- Speech-based Japanese verb conjugation practice with instant feedback to strengthen active recall of verb forms and speaking confidence.
Chessbook
Mobile and web chess study application that combines multiple resources from YouTube, Lichess, ChessBase, and books to create a custom personal chess repertoire.
Chessbook overhauled its spaced repetition system using FSRS-4.5.
HSRS
Intended for language learning, HSRS continuously refreshes card content using a system of parameterized grammar cards. Individual reviews of a card reschedule all sub-cards in the parameter tree using bayesian statistics to estimate the contributions of each. Changes to stability from FSRS are interpolated in retrievability-space according to their probability.
Used to power grsly, a tool for learning Japanese grammar.
KaChiKa
KaChiKa is an AI-powered photo-to-flashcard app for language learners. Snap a photo of any object — a coffee cup, a cat, a street sign — and KaChiKa extracts the vocabulary, generates real-world example sentences, and schedules reviews using FSRS.
Supports English, Japanese, French, Korean, Italian, Spanish, and Chinese. All photos are stored locally on device for privacy. Available on iOS, Android, and APK.
LeetFlash
LeetFlash is a flashcard review app for review LeetCode algorithm questions. It leverages TS-FSRS for scheduling flashcards.
The app consists of a Chrome extension, website for now. A mobile app is under development. It can automatically capture LeetCode question submissions and schedule your next review using an Anki-like experience. It supports both Leetcode and Leetcode China (力扣).
LinGoat
LinGoat is an AI-powered language learning app that scores every word and grammar rule in every sentence you translate. Each item gets its own independent FSRS schedule, so reviews are driven by precise per-item recall data rather than sentence-level outcomes.
-
Schedules word and grammar reviews using FSRS v6.
-
Stacks multiple due or soon to be due review concepts into a single sentence to maximize useful reps per minute.
-
Currently supports Spanish, with English and German coming soon. Free to get started. Supports learning Spanish from multiple languages.
-
Available on web.
LinGoat uses py-fsrs (FSRS-6) for scheduling.
Rhythm Word
Rhythm Word is an iOS vocabulary learning app that helps users build and retain English vocabulary through AI-generated context sentences and spaced repetition.
Rhythm Word implements FSRS-4.5 for intelligent review scheduling.
WordVault
WordVault is a word study app for Scrabble/Boggle/other word games. It uses the Go FSRS library for scheduling words, which show up as scrambled letters for the user to solve. This should hopefully be significally more efficient than the Leitner cardbox system previously in use in some word study apps.
Related
Algorithm
FSRS
- Math:
- Dataset:
- Benchmark: open-spaced-repetition/srs-benchmark: A benchmark for spaced repetition schedulers/algorithms (github.com)
- FSRS Explained with Code: Implementing FSRS in 100 Lines
MaiMemo
- Code:
- Paper:
- Dataset: MaiMemo's Open-Source Memory Behavior Dataset for Spaced Repetition [中文介绍]
- Science popularization video:
- Wiki: 墨墨百科
HLR
An algorithm made particularly for second language acquisition. The HLR model marries psycholinguistic theory with modern machine learning techniques, estimating the "half-life" of words (and potentially any other item or fact) in a student's long-term memory.
- GitHub repository: duolingo/halflife-regression
- Paper: A Trainable Spaced Repetition Model for Language Learning
DASH
- Paper: Probabilistic Models of Student Learning and Forgetting Public Deposited
- Paper: Memory Models for Spaced Repetition Systems
ACT-R
SuperMemo
SuperMemo was the first software that used computer-based spaced repetition algorithms and pioneered the usage of machine learning to personalize each user's learning schedule.
- SM-0: The birthday of spaced repetition: July 31, 1985
- SM-2: Application of a computer to improve the results obtained in working with SuperMemo method
- SM-5: First fast-converging spaced repetition algorithm: Algorithm SM-5
- SM-17: Algorithm SM-17
Leitner System
Leitner sytem sorts flashcard into groups according to how well the learner knows each one in Leitner's learning box. The learners try to recall the answer written on a flashcard. If they succeed, the card is sent to the next box. If they fail, the card is sent back to the first box. In each successive box, the amount of time before the learner is required to revisit the cards increases. (More: Wikipedia)