A curated list of awesome FSRS implementations, papers and resources. Feel free to suggest new projects in Issues or PR directly.
- 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
- 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
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.
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 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
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.
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.
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.
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.
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 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.
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 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 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 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
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.
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.
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.
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 (力扣).
Phrasing.app Combine the power of Spaced Repetition with efficacy of Comprehensible Input to learn over 120 languages
- Our Humane SRS builds upon FSRS to make reviews as addicting as possible
- Our focus on language learning allows us to make additional optimizations in the review space so you can learn more, faster
- Native support for learning multiple languages simultaniously at various speeds
- Inline audio, translations, explanations & more for every word
- Beautiful UI and genuine support for all languages (founder is learning Maltese, Cantonese, Sanskrit and more)
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.
- 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
- Code:
- Paper:
- Dataset: MaiMemo's Open-Source Memory Behavior Dataset for Spaced Repetition [中文介绍]
- Science popularization video:
- Wiki: 墨墨百科
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
- Paper: Probabilistic Models of Student Learning and Forgetting Public Deposited
- Paper: Memory Models for Spaced Repetition Systems
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 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)
