SM.js is a tool that helps you memorize tons of things. It can be used for foreign words, names of historical persons, biology terms and whatever you want to memorize. It employs a method called spaced repetition that shows "flashcards" repeatedly with proper intervals in order to make your memory steady.
It can be used as a stand-alone CLI software. It also works as a JavaScript library that can be used as a part of your software.
By the way, "SM" stands for SweetMemento. This algorithm is based on a description of SM-15 (SuperMemo 15) with a few modificitations.