tools//Anki
Anki is a free, open-source flashcard program whose scheduler decides, card by card, when each one comes back. After a card is shown, the learner grades the answer (Again, Hard, Good or Easy) and the grade sets the next interval: a card answered easily returns after a longer gap, a failed one returns soon. Two algorithms are available, the legacy SM-2 and FSRS, which estimates how likely each card is to be forgotten.
Anki is a free, open-source flashcard program whose scheduler decides, card by card, when each one comes back. After a card is shown, the learner grades the answer (Again, Hard, Good or Easy) and the grade sets the next interval: a card answered easily returns after a longer gap, a failed one returns soon. Two algorithms are available, the legacy SM-2 and FSRS, which estimates how likely each card is to be forgotten.
Its data model keeps content apart from questions. A note holds the content, split into fields (a word, its reading, its meaning, an audio file). The note type's templates generate one or more cards from each note, each a question and its answer. A deck groups cards, and a preset holds deck options such as new cards and maximum reviews per day; every deck that shares a preset changes when the preset does.
The desktop app (Windows, macOS, Linux) is free and is where decks are built. AnkiWeb is a free sync service, and the phone apps sync against it: AnkiDroid (free, community-built) and AnkiMobile (paid, iOS). An edit on the computer reaches the phone after one sync.
A deck travels as an .apkg file (Anki Deck Package): one deck and its subdecks, optionally with media and with scheduling history. A .colpkg carries the whole collection.
Add-ons extend the desktop app. AnkiConnect (code 2055492159) starts an HTTP server on port 8765 whenever Anki is running and exposes its operations as an API. Each request is a JSON object with an action, a version and params; the actions cover adding notes, moving cards between decks (changeDeck), editing deck options, importing a package (importPackage) and syncing (sync). It answers only on localhost by default, and only while the desktop app is open.