Favicon of Anki

Anki

Anki is an open-source spaced repetition flashcard program with a Rust backend, used for memorizing facts, languages, and more.

Open Source Alternative to:
Anki website screenshot
Anki GitHub repository preview

Anki is a spaced repetition flashcard program. It schedules reviews of flashcards based on an algorithm that spaces out repetitions as you demonstrate you know the material, so you spend less time re-reviewing things you already remember well. This repo holds the source code for the desktop version, built with a Rust backend and used by students, language learners, medical professionals, and anyone memorizing large amounts of factual material.

The project has been around for years and has a large ecosystem of add-ons, shared decks, and companion apps (AnkiDroid, AnkiMobile, AnkiWeb) built around the same card format and scheduling logic. If you're evaluating Anki as a developer, this repo is where the core scheduler, card rendering, and sync logic live.

Key features

  • Spaced repetition scheduling: cards are shown again at increasing intervals as you rate how well you recalled them, so review time is focused on weak spots.
  • Rust core: the scheduling algorithm, database logic, and other performance-sensitive parts are written in Rust, with a UI layer built on top.
  • Cross-platform sync: decks and review history can sync across devices through AnkiWeb or a self-hosted sync server.
  • Customizable card templates: cards support HTML/CSS templates, so you can build anything from basic Q&A cards to cloze deletions or image-heavy cards.
  • Add-on support: the desktop client supports third-party add-ons for extending functionality beyond the core app.
  • Shared deck ecosystem: users can import and share pre-built decks covering everything from vocabulary to anatomy.

Ideal use cases

Anki fits anyone who needs to memorize discrete facts over the long term: language vocabulary, medical or legal terminology, exam content, or trivia. It's also a reasonable base if you want to build a custom study tool and need a proven spaced repetition engine rather than writing your own.

It's not a good fit if you're looking for a general note-taking or knowledge-management tool, or if your material doesn't break down into discrete question/answer style facts. If you want something with a polished, drag-and-drop deck builder out of the box and no interest in code, downloading the pre-built app from the Anki website is a better fit than working with this source repo directly.

Developers who want to modify scheduling behavior, build custom sync servers, or contribute add-ons will get the most value from this repository. Casual users who just want the app should install the compiled binaries instead of building from source.

Installation

This repository is the source code for the desktop client, aimed at contributors and developers who want to build Anki themselves. The README points to two docs for setup:

If you just want to use Anki without building it, download a pre-built release from the Anki website or try a development build if you want newer features before they're finalized.

For building from source, you'll generally need:

# Clone the repository
git clone https://github.com/ankitects/anki.git
cd anki

# Follow the detailed build steps in docs/development.md,
# which cover the Rust toolchain, Python requirements,
# and platform-specific dependencies.

Check docs/development.md in the repo for the exact toolchain versions and platform notes, since build requirements vary by OS.

Frequently asked questions

Share:

Stars
32.1K
Forks
3.4K
Last commit
21 hours ago
Repository age
14 years
Self-hosted
Yes
Activity score
84/100
View Repository
Ad
Favicon

 

  
 

Similar to Anki

Favicon

 

  
 
Favicon

 

  
 
Favicon