Fsrs4anki
A modern Anki custom scheduling based on Free Spaced Repetition Scheduler algorithm
Install / Use
/learn @open-spaced-repetition/Fsrs4ankiREADME
FSRS4Anki
✨ A modern spaced-repetition scheduler for Anki based on the Free Spaced Repetition Scheduler algorithm ✨
</div> <p align="center"> <a href="https://raw.githubusercontent.com/open-spaced-repetition/fsrs4anki/main/LICENSE"> <img src="https://img.shields.io/github/license/open-spaced-repetition/fsrs4anki" alt="license"> </a> <a href="https://github.com/open-spaced-repetition/fsrs4anki/releases/latest"> <img src="https://img.shields.io/github/v/release/open-spaced-repetition/fsrs4anki?color=blueviolet" alt="release"> </a> </p>Table of contents
- Introduction
- How to Get Started?
- Add-on Compatibility
- Contribute
- Developer Resources
- Stargazers Over Time
- Acknowledgements
Introduction
FSRS4Anki (Free Spaced Repetition Scheduler for Anki) consists of two main parts: the scheduler and the optimizer.
- The scheduler replaces Anki's built-in scheduler and schedules the cards according to the FSRS algorithm.
- The optimizer uses machine learning to learn your memory patterns and finds parameters that best fit your review history. For details about the working of the optimizer, please read the mechanism of optimization.
For details about the FSRS algorithm, please read the algorithm. If you are interested, you can also read my papers:
- A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling (free access) [中文版], and
- Optimizing Spaced Repetition Schedule by Capturing the Dynamics of Memory (Google Scholar) [中文版].
FSRS Helper is an Anki add-on that complements the FSRS4Anki Scheduler. You can read about it here: https://github.com/open-spaced-repetition/fsrs4anki-helper
How to Get Started?
If you are using Anki 23.10 or newer, refer to this section of the Anki manual.
If you are using an older version of Anki, refer to this tutorial.
Note that setting up FSRS is much easier in Anki 23.10 or newer.
Add-on Compatibility
Some add-ons can cause conflicts with FSRS. As a general rule of thumb, if an add-on affects a card's intervals, it shouldn't be used with FSRS.
| Add-on | Compatible? | Comment |
| ------------------------------------------------------------ |-------------------| ------- |
| Review Heatmap | Yes :white_check_mark: | Doesn't affect anything FSRS-related. |
| Advanced Browser | Yes :white_check_mark: | Please use the latest version. |
| Advanced Review Bottom Bar | Yes :white_check_mark: | Please use the latest version. |
| The KING of Button Add-ons | Yes :white_check_mark: | Please use the latest version. |
| Pass/Fail | Yes :white_check_mark: | Pass is the equivalent of Good, Fail is the equivalent of Again. |
| AJT Card Management | Yes :white_check_mark: | Compatible with Anki 23.12 and newer. |
| Incremental Reading v4.11.3 (unofficial clone) | Unsure :question: | If you are using the standalone version of FSRS, it shows the interval given by Anki's built-in scheduler, not the custom scheduler. This add-on is technically compatible with built-in FSRS, but FSRS was not designed for incremental reading, and FSRS settings do not apply to IR cards because they work in a different way compared to other card types. |
| Delay siblings | No :x:| Delay siblings will modify the intervals given by FSRS. However, the FSRS Helper add-on has a similar feature that works better with FSRS. Please use the FSRS Helper add-on instead. |
| Auto Ease Factor | No :x: | The Ease Factor is no longer relevant when FSRS is enabled, therefore you won't benefit from using this add-on. |
| autoLapseNewInterval |No :x:| The New Interval setting is no longer relevant when FSRS is enabled, therefore you won't benefit from using this add-on. |
| Straight Reward | No :x: | The Ease Factor is no longer relevant when FSRS is enabled, therefore you won't benefit from using this add-on. |
Let me know via issues if you want me to check compatibility between FSRS and some add-on.
Contribute
You can contribute to FSRS4Anki by beta testing, submitting code, or sharing your data. If you want to share your data with me, please fill out this form: https://forms.gle/KaojsBbhMCytaA7h8
Contributors
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> <!-- ALL-CONTRIBUTORS-BADGE:END --> <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Expertium"><img src="https://avatars.githubusercontent.com/u/83031600?v=4?s=100" width="100px;" alt="Expertium"/><br /><sub><b>Expertium</b></sub></a><br /><a href="https://github.com/open-spaced-repetition/fsrs4anki/commits?author=Expertium" title="Tests">⚠️</a> <a href="https://github.com/open-spaced-repetition/fsrs4anki/commits?author=Expertium" title="Documentation">📖</a> <a href="#data-Expertium" title="Data">🔣</a> <a href="#ideas-Expertium" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/open-spaced-repetition/fsrs4anki/issues?q=author%3AExpertium" title="Bug reports">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/user1823"><img src="https://avatars.githubusercontent.com/u/92206575?v=4?s=100" width="100px;" alt="user1823"/><br /><sub><b>user1823</b></sub></a><br /><a href="https://github.com/open-spaced-repetition/fsrs4anki/commits?author=user1823" title="Tests">⚠️</a> <a href="https://github.com/open-spaced-repetition/fsrs4anki/commits?author=user1823" title="Documentation">📖</a> <a href="#data-user1823" title="Data">🔣</a> <a href="#ideas-user1823" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/open-spaced-repetition/fsrs4anki/issues?q=author%3Auser1823" title="Bug reports">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="http://chrislongros.com"><img src="https://avatars.githubusercontent.com/u/98426896?v=4?s=100" width="100px;" alt="Christos Longros"/><br /><sub><b>Christos Longros</b></sub></a><br /><a href="#data-chrislongros" title="Data">🔣</a> <a href="#content-chrislongros" title="Content">🖋</a></td> </tr> </tbody> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END -->Developer Resources
If you're a developer considering using the FSRS algorithm in your own projects, we've curated some valuable resources for you. Check out the Awesome FSRS repository, where you'll find:
- FSRS implementations in various programming languages
- Related papers and research
- Example applications using FSRS
- Other algorithms and resources related to spaced repetition systems
This carefully curated list will help you better understand FSRS and choose the right implementation for your project. We encourage you to explore these resources and consider contributing to the FSRS ecosystem.
Research Resources
For those new to spaced repetition algorithms, we recommend starting with our comprehensive guide: Spaced Repetition Algorithm: A Three-Day Journey from Novice to Expert
Dive deeper into the academic foundations of FSRS and spaced repetition through our curated collection of Datasets, Code & Research Papers
Explore our extensive collection of Research Notebooks documenting detailed analyses and experiments with FSRS and spaced repetition algorithms
Stargazers Over Time
<a href="https://star-history.com/#open-spaced-repetition/fsrs4anki&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=open-spaced-repetition/fsrs4anki&type=Date&theme=dark" /> <source media="(prefers-color-schRelated Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
API
A learning and reflection platform designed to cultivate clarity, resilience, and antifragile thinking in an uncertain world.
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
sec-edgar-agentkit
10AI agent toolkit for accessing and analyzing SEC EDGAR filing data. Build intelligent agents with LangChain, MCP-use, Gradio, Dify, and smolagents to analyze financial statements, insider trading, and company filings.
