HTTP/2 200
date: Mon, 29 Dec 2025 09:08:48 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"2b9507e2d716c0fb0541f888ba256739"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com/ copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=LoAaA%2BtWZ0EbxM6PPkFV9OV2T3WqtSC%2BKaepsjMiQUUxG2wQWnM5dEFhqq9rT3cUor59bxYg5rUYkk01HUw2081z5oTynHFS%2BbOD%2Fx6Xq8v67XV%2FHQZKBC82e14R2Q2oMGyLFtOw6%2BV7O4jqfCnFbWcZrQcpcKTdS%2Fa65Bc%2FJqHYv2nBILBVqE6%2FZcpTGald%2FwgrN3Y6PJDo6CuuNk0XDrOx21IkKvJ56cau7iYGA%2FH8lkADDISDDjEkzjc914g7UuorTArVnUg8VtgjXJfEqw%3D%3D--eMZXLCx0PC4qjKUu--RnCCTqF7q7DS6J7B3Ylh9g%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.793141725.1766999327; Path=/; Domain=github.com; Expires=Tue, 29 Dec 2026 09:08:47 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Tue, 29 Dec 2026 09:08:47 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: A638:13ACF:5CAC13B:6FB8CC7:6952451F
Open Spaced Repetition · GitHub
Open Spaced Repetition
We are developing open-source spaced repetition algorithms for any spaced repetition software/system.
Open Spaced Repetition (OSR) is an open-source community dedicated to the advancement of spaced repetition algorithms. We are the creators of the Free Spaced Repetition Scheduler (FSRS), which is backed by academic literatures and experiments. FSRS has been implemented in various programming languages, including Javascript, Golang, Rust, Python, and so on.
Our mission is to develop efficient, effective, and accessible spaced repetition algorithms that can be readily integrated into any educational software or system.
Multiple Language Support :
w/o optimization: ts-fsrs , go-fsrs , rs-fsrs , c/cpp binding , java binding , cljc-fsrs , swift-fsrs , ex_fsrs , dart-fsrs , rb-fsrs
w/ optimization: fsrs-rs , fsrs-rs-c , fsrs-rs-python , fsrs-browser , fsrs-rs-nodejs , fsrs-rs-dart , fsrs-rs-php , py-fsrs
Scientifically-Backed :
Plugin & Add-on : fsrs4anki-helper , fsrs4tw , obsidian-spaced-repetition-recall , fsrs4remnote and so on.
A special thanks to 墨墨背单词 (MaiMemo Inc.) for their support of FSRS development by allowing its research engineer, Jarrett Ye , to dedicate part of his working hours to this open-source project. This greatly helps in the continuous improvement and maintenance of FSRS for the benefit of the entire community.
Pinned
Loading
A curated list of awesome FSRS implementations, papers and resources
400
24
A modern Anki custom scheduling based on Free Spaced Repetition Scheduler algorithm
Jupyter Notebook
3.7k
156
A benchmark for spaced repetition schedulers/algorithms
Jupyter Notebook
181
19
ts-fsrs is a versatile package written in TypeScript that supports ES modules, CommonJS, and UMD.
TypeScript
535
53
FSRS for Rust, including Optimizer and Scheduler
Rust
314
29
An Anki add-on that supports Postpone & Advance & Load Balance & Easy Days & Disperse Siblings & Flatten
Python
288
28
Repositories
Showing 10 of 85 repositories
rs-fsrs
Public
Rust-based Scheduler for FSRS
open-spaced-repetition/rs-fsrs’s past year of commit activity
Rust
46
MIT
9
1
0
Updated Dec 22, 2025
ts-fsrs
Public
ts-fsrs is a versatile package written in TypeScript that supports ES modules, CommonJS, and UMD.
open-spaced-repetition/ts-fsrs’s past year of commit activity
TypeScript
535
MIT
53
0
3
Updated Dec 22, 2025
srs-benchmark
Public
A benchmark for spaced repetition schedulers/algorithms
open-spaced-repetition/srs-benchmark’s past year of commit activity
Jupyter Notebook
181
19
7
4
Updated Dec 18, 2025
open-spaced-repetition/anki-manual-zh-CN’s past year of commit activity
CSS
50
8
0
0
Updated Dec 16, 2025
fsrs-rs
Public
FSRS for Rust, including Optimizer and Scheduler
open-spaced-repetition/fsrs-rs’s past year of commit activity
Rust
314
BSD-3-Clause
29
1
2
Updated Dec 15, 2025
open-spaced-repetition/free-spaced-repetition-scheduler’s past year of commit activity
open-spaced-repetition/fsrs-optimizer’s past year of commit activity
Python
97
BSD-3-Clause
15
0
2
Updated Dec 4, 2025
open-spaced-repetition/Anki-Search-Stats-Extended’s past year of commit activity
Svelte
0
GPL-3.0
18
0
0
Updated Dec 2, 2025
fsrs-rs-python
Public
Python bindings for fsrs-rs, use burn-rs, instead of pytorch. 2GB -> 6MB, save your disk!
open-spaced-repetition/fsrs-rs-python’s past year of commit activity
Rust
30
2
2
2
Updated Dec 1, 2025
fsrs-vs-sm17
Public
A simple comparison between FSRS and SM-17
open-spaced-repetition/fsrs-vs-sm17’s past year of commit activity
Jupyter Notebook
41
5
1
0
Updated Nov 27, 2025
You can’t perform that action at this time.