Anki (/ˈɒŋkiː/; Japanese: [aŋki]) is a free and open-source flashcard program using active recall testing and spaced repetition, techniques from cognitive science for memorization. The name comes from the Japanese word for "memorization" ().
The SM-2 algorithm, created for SuperMemo in the late 1980s, forms the basis of the spaced repetition methods employed in the program. Anki's implementation of the algorithm has been modified to allow priorities on cards and to show flashcards in order of their urgency.
Anki is content-agnostic, the cards are presented using HTML and may include text, images, sounds, videos, and LaTeX equations. The decks of cards, along with the user's statistics, are stored in the open SQLite format.
Features
Notes
Cards are generated from information stored as "notes". Notes are analogous to database entries and can have an arbitrary number of fields. For example, with respect to learning a language, a note may have the following fields and example entries: Field 1: Expression in target language – Field 2: Pronunciation – [sound file with the word pronounced] Field 3: Expression in familiar language – "cake" This example illustrates what some programs call a three-sided flashcard, but Anki's model is more general and allows any number of fields to be combined in various cards.
The user can design cards that test the information contained in each note. One card may have a question (expression) and an answer (pronunciation, meaning).
By keeping the separate cards linked to the same fact, spelling mistakes can be adjusted against all cards at the same time, and Anki can ensure that related cards are not shown in too short a spacing.
A special note type allows generation of cloze deletion cards (in Anki 1.2.x, those were ordinary cards with cloze markup added using a tool in the fact editor).
Syncing
Anki supports synchronization with a free and proprietary online service called AnkiWeb. This allows users to keep decks synchronized across multiple computers and to study online or on a cell phone.
There also is a third-party open-source (AGPLv3) AnkiWeb alternative, called ankisyncd, which users can run on their own local computers or servers.
Japanese and Chinese reading generation
Anki can automatically fill in the reading of Japanese and Chinese text. Since version 0.9.9.8.2, these features are in separate plug-ins.
Add-ons
More than 750 add-ons for Anki are available, often written by third-party developers. They provide support for speech synthesis, enhanced user statistics, image occlusion, incremental reading, more efficient editing and creation of cards through batch editing, modifying the GUI, simplifying import of flashcards from other digital sources, adding an element of gamification, etc.
Shared decks
While Anki's user manual encourages the creation of one's own decks for most material, there is still a large and active database of shared decks that users can download and use. Available decks range from foreign-language decks (often constructed with frequency tables) to geography, physics, biology, chemistry and more. Various medical science decks, often made by multiple users in collaboration, are also available.
Comparisons
Anki's current scheduling algorithm is derived from SM-2 (an older version of the SuperMemo algorithm), though the algorithm has been significantly changed from SM-2 and is also far more configurable. One of the most apparent differences is that while SuperMemo provides users a 6-point grading system (0 through 5, inclusive), Anki only provides at most 4 grades (again, hard, good, and easy). Anki also has significantly changed how review intervals grow and shrink (making many of these aspects of the scheduler configurable through deck options), though the core algorithm is still based on SM-2's concept of ease factors as the primary mechanism of evolving card review intervals.