Anki (software)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Anki 2.0.22 KDE4.en.story-ru-en.smallwindow.png
Developer(s) Damien Elmes
Stable release
2.0.36 / April 10, 2016; 5 months ago (2016-04-10)
Development status Active
Written in Python
Operating system Windows, Linux, Mac OS X, FreeBSD, Maemo
Platform Cross-Platform


.deb package (w/o third-party libraries): 3.3 MB; installed: 10.4 MB
Available in English and over 35 other languages
Type Flashcard spaced repetition
  • 2.0.0:
    • GNU AGPL v3+
    • Commercial proprietary license (the developer receives a 3-clause BSD license for code included in the official distribution)
  • 1.2.x: GPL v3+ for the desktop version, Maemo, Android & Nintendo DS

Anki is a spaced repetition flashcard program. Anki (暗記) is the Japanese word for memorization.[1]

The SM2 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 cards in order of their urgency.

The cards are presented using HTML and may include text, images, sounds, videos,[2] and LaTeX equations. The decks of cards, along with the user's statistics, are stored in the open SQLite format.

Unique features[edit]


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 – "gâteau"
  • Field 2: Pronunciation – [sound file with the word "gâteau" pronounced]
  • Field 3: Meaning of 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 for 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).


Anki supports synchronization with a free (but proprietary) online server called AnkiWeb.[3] This allows users to keep decks synchronized across multiple computers, and to study online or on a cell phone.

There is a third-party open source (AGPLv3) AnkiServer software which users can run on their own local computers or servers, though it is not compatible with recent Anki versions. It also provides a RESTful API for manipulating Anki collections.[4]

Japanese and Chinese reading generation[edit]

Anki can automatically fill in the reading of Japanese and Chinese text. Since version, these features are in separate plug-ins.


Anki's scheduling algorithm is based on an older version of the SuperMemo algorithm (SM2). The Anki author claims that versions 3-5 of the Supermemo algorithm are more susceptible to incorrect scheduling.[5][6]

Mobile versions[edit]

Developer(s) Damien Elmes
Stable release
2.0.11 / approved by Apple on February 4, 2014; 2 years ago (2014-02-04)
Operating system iOS
Website link
Developer(s) AnkiDroid community
Stable release
2.6 / June 13, 2016; 3 months ago (2016-06-13)
Website link

The following smartphone/tablet clients are available:[7]

  • AnkiMobile[8] for iPhone, iPod touch or iPad (paid)
  • AnkiWeb[9] (online server, free to use; includes add-on and deck hosting)
  • AnkiDroid[10] for Android (free of charge, under GPLv3; by a different author)

The flashcards and learning progress can be synchronized both ways with Anki using AnkiWeb. With AnkiDroid it is possible to have the flashcards read in several languages using text-to-speech (TTS). If a language does not exist in the Android TTS engine (e.g. Russian in the Android version Ice Cream Sandwich), a different TTS engine such as SVOX TTS Classic can be used.


The oldest mention of Anki that the developer, Damien Elmes, could find in 2011 was dated 5 October 2006, which was thus declared Anki’s birthdate.[11]

In 2010, Roger Craig obtained the all-time record for single-day winnings on the quiz show Jeopardy![12] after using Anki to memorize a vast number of facts.[13]

Version 2.0 was released on 2012-10-06.

Copera Inc.'s Anki for Palm OS[edit]

An unrelated flashcard program called Anki for Palm OS[14] was created by Copera, Inc. (formerly known as Cooperative Computers, Inc.) and released at the PalmSource conference in February 2002. Anki for Palm OS was sold from 2002 to 2006 as a commercial product. In late 2007, Copera, Inc. decided to release Anki for Palm OS as freeware.

See also[edit]


  1. ^ wikt:暗記
  2. ^ Played in a separate MPlayer window.
  3. ^ "Anki - friendly, intelligent flashcards". 
  4. ^ "dsnopek/anki-sync-server". GitHub. 
  5. ^ "Anki Manual". 
  6. ^ "Google Groups". 
  7. ^ "Anki - powerful, intelligent flashcards". 
  8. ^ "Anki - powerful, intelligent flashcards". 
  9. ^ "Anki - friendly, intelligent flashcards". 
  10. ^ "Anki on Android". 
  11. ^ Happy birthday, Anki!, a thread started by Damien Elmes in the ankisrs Google Group on 2011-10-05.
  12. ^ Itzkoff, Dave (September 15, 2010). "Record Set On 'Jeopardy!'". The New York Times. Retrieved September 20, 2010. 
  13. ^ Baker, Stephen (2011). "How to Play the Game". Final Jeopardy: Man vs. Machine and the Quest to Know Everything. Houghton Mifflin Harcourt. p. 214. ISBN 978-0-547-48316-0. LCCN 2010051653. OCLC 651912283. OL 25136706M. Retrieved 25 April 2015. 
  14. ^ "About Anki for Palm OS". Mirror of old website. 

Further reading[edit]

External links[edit]