Dynamic Cards

AnkiWeb addon 1902186394

Pings Mistral or Gemini LLMs to generate slightly reworded versions of your cards, showing different wording on each review to prevent memorizing phrasing.
AI-generated summary; may contain mistakes.

ai

Open on AnkiWeb GitHub Find alternatives

AnkiWeb

Votes
1 (👍 1 · 👎 0)
Updated
2026-08-13
Anki versions
26.05~
License
GPL-3.0 (from the license file in the package)
Virus scan
No ClamAV match A match does not prove malware. No match does not prove that the code is safe.
Languages
Python, JSON
Description language
en

Maintenance

active

  • Last update or commit: 2026-08-13 (80 days before the snapshot).
  • Commits in the last year: 17.
  • Issues: 5 open, 5 closed.
  • Pull requests: 0 open, 2 merged.
  • Median first response: 516 hours (4 answered issues and pull requests).

Will it work on my Anki?

Version branches
Min AnkiMax AnkiUpdated
23.1026.05+2026-08-13
History across monthly snapshots

Loading…

Similar addons

Anki AI Dynamic Cards Add-on (AI generated examples)

Generates fresh AI example sentences on the fly for simple English word or phrase cards, supports multiple AI providers, and stores nothing in your collection.

ai

5 votes 23% approval 👍 3 · 👎 2 ⭐ 4 Anki 2.1.66~ Updated 2025-12-24
🤖 Anki LLM Checker - check your answers using AI

Adds optional AI-powered free-text answer checking in review mode using a Google Gemini API key, with configurable models and prompts and 500 free daily checks.

aiquiz

2 votes 9% approval 👍 1 · 👎 1 ⭐ 0 Anki 25.09~ Updated 2026-03-28
Card Assistant — LLM Chat Panel (OpenRouter, Ollama & Gemini)

Provides a dockable side-panel chat assistant for asking LLM questions about the current flashcard while reviewing, supporting OpenRouter, local Ollama, and Google Gemini with streaming, context-aware responses.

ai

2 votes 34% approval 👍 2 · 👎 0 ⭐ 1 Anki 2.1.66~ Updated 2026-02-27
LLM Card Fill

Queries Anthropic or OpenAI APIs with custom prompts to fill Anki note fields, supporting batch updates, card creation, and per-note-type configurations.

card-creationainote-management

2 votes 9% approval 👍 1 · 👎 1 ⭐ 1 Anki 26.09~ Updated 2026-09-24

Description

Does some information seem out of date? Check the GitHub page for the latest information.

Hate when you memorize the wording of an Anki card rather than the card's content? Introducing the Dynamic Cards plugin, a small plugin that allows Anki to ping LLMs to slightly change the content of your cards each time you review them.

This extension currently relies upon either Mistral AI or Google Gemini for generating and serving new content. Please keep usage agreements and rate limits in mind.

Also important to note: This is not the same as the Anki AI Dynamic Cards Add-on (ChatGPT AI examples) plugin, which aims to provide a unique way to improve the effectiveness of memorizing new words and their usage in context, giving users the ability to practice real-world scenarios. Check that out if that's more your speed.

Download and installation

See below for instructions; you should be able to do this using the 'Get Addons' button in Anki's addons menu.

Usage

First-time setup

There are some critical steps that need to be done before this extension may be used.

  1. Create an API key: Create a free account at Mistral AI or Google Gemini to get started. Follow the appropriate instructions to create a free API key. (This also works with paid keys if you've got the funds!)
  2. Paste the API key into the extension. Navigate to the Tools > Dynamic Cards window in Anki. Then, paste your API key into the API key field. Make sure the Platform dropdown is set to the appropriate service (Mistral or Google for now).
  3. That's it! The plugin should begin working immediately without further action; changes will initially be subtle. Enjoy your dynamic cards!

[!IMPORTANT] If you see a tooltip (pop-up) saying 'Unauthorized', there is a problem with your API key. Please try again or raise an issue on GitHub (see Bugs and other issues) if that doesn't work.

[!WARNING] This extension might not work with certain types of cards, but should work with Basic, Cloze, and other note types that have the question text in their first field. This has been tested on AnKing and Miledown decks, for instance. Please raise an issue if you find a bug; see Bugs and other issues below.

Normal operation

The workflow of the extension is quite simple. Each time you review a card, a new "rewording" is generated in the background for next time (until the maximum number of rewordings are reached). The extension therefore operates as follows:

  • The first time you see a card, you will see the original wording.
  • The second time you see a card, you will see a different rewording.
  • Upon subsequent reviews of a card, one of any of the previous rewordings (or a new rewording) may be selected for display.

Do note that this extension uses an LLM and is subject to mistakes; cards might not always look right. See The Settings menu subsection for what to do in order to remove a poor rewording of a card from memory.

The Settings menu

The Settings menu is the main control center of this plugin. It is accessible via Tools > Dynamic Cards. The below bulletpoints describe all current settings within the Settings menu.

  • Clear current card from cache: If the LLM outputs a card whose wording doesn't quite make sense, press the corresponding hotkey to reset the wording of that specific card.
  • Clear all cards from cache: Same as above, but do so for all cards.
  • Exclude/include current note type: If you come across a card during your review whose note type is not amenable to dynamic generation (for example, Image Occlusion cards do not often have text to reword), hit this hotkey during your review to tell Dynamic Cards to not generate unnecessary rewordings for this note type.
  • Pause dynamic card generation: Temporaeily stop the generation of dynamic cards by pressing this hotkey during review. Press the hotkey again to resume dynamic card generation.
  • Platform: The platform hosting the model you're using.
  • API key: The API key to allow access to your platform's API.
  • Model: The model to use to generate card rewordings.
  • Max renders: The maximum number of alternative "versions" of a card to hold. The default is 3 to balance storage use with a healthy variety of cards. Increasing this will increase the number of rewordings of cards available to you.
  • Context: Instructions fed to the LLM to generate rewordings for cards. If the model is misbehaving, try rewording the context to suit your needs.
  • Retry count: If generating a cloze-style note and the model outputs an invalid result (sometimes the case), retry for this many tries. Note that this will slow down the application but will reduce the number of observed errors from LLM outputs.
  • Retry delay (sec): When redoing generations, wait this many seconds before retrying. Note that this is often necessary to avoid being rate-limited by LLM APIs; this has therefore been set to 1.0 seconds by default.
  • Clear cache on review end: By default, any card rewordings that you create are preserved even after you stop reviewing. Check this option to clear all rewordings once you stop a review session.
  • Excluded note types: A list of all note types that have been excluded so far. Double-click any note type to remove it from the list (and thus resume dynamic generation again for it).

Bugs and other issues

Please check the GitHub page to view existing issues and/or create a new issue. Contributions are also welcome!

README

Dynamic Cards

Hate when you memorize the wording of an Anki card rather than the card's content? Introducing the Dynamic Cards plugin, a small plugin that allows Anki to ping LLMs to slightly change the content of your cards each time you review them.

This extension currently relies upon either Mistral AI or Google Gemini for generating and serving new content. Please keep usage agreements and rate limits in mind.

[!WARNING] This has only been tested on a Windows 11 machine with PyQt6. It is possible that UI windows for this extension look subpar on other systems. If this plugin is indeed broken for other systems, please raise an issue on GitHub (see Bugs and other issues below).

Download and installation

Head over to the AnkiWeb page for installation instructions. You should be able to install the plugin through the Add-ons > Get Add-ons menu in Anki itself.

Usage

First-time setup

There are some critical steps that need to be done before this extension may be used.

  1. Create an API key: Create a free account at Mistral AI or Google Gemini to get started. Follow the appropriate instructions to create a free API key. (This also works with paid keys if you've got the funds!)
  2. Paste the API key into the extension. Navigate to the Tools > Dynamic Cards window in Anki. Then, paste your API key into the API key field. Make sure the Platform dropdown is set to the appropriate service (Mistral or Google for now).
  3. That's it! The plugin should begin working immediately without further action; changes will initially be subtle. Enjoy your dynamic cards!

[!IMPORTANT] If you see a tooltip (pop-up) saying 'Unauthorized', there is a problem with your API key. Please try again or raise an issue on GitHub (see Bugs and other issues) if that doesn't work.

[!WARNING] This extension might not work with certain types of cards, but should work with Basic, Cloze, and other note types that have the question text in their first field. This has been tested on AnKing and Miledown decks, for instance. Please raise an issue if you find a bug; see Bugs and other issues below.

Normal operation

The workflow of the extension is quite simple. Each time you review a card, a new "rewording" is generated in the background for next time (until the maximum number of rewordings are reached). The extension therefore operates as follows:

  • The first time you see a card, you will see the original wording.
  • The second time you see a card, you will see a different rewording.
  • Upon subsequent reviews of a card, one of any of the previous rewordings (or a new rewording) may be selected for display.

Do note that this extension uses an LLM and is subject to mistakes; cards might not always look right. See The Settings menu subsection for what to do in order to remove a poor rewording of a card from memory.

The Settings menu

The Settings menu is the main control center of this plugin. It is accessible via Tools > Dynamic Cards. The below bulletpoints describe all current settings within the Settings menu.

  • Clear current card from cache: If the LLM outputs a card whose wording doesn't quite make sense, press the corresponding hotkey to reset the wording of that specific card.
  • Clear all cards from cache: Same as above, but do so for all cards.
  • Exclude/include current note type: If you come across a card during your review whose note type is not amenable to dynamic generation (for example, Image Occlusion cards do not often have text to reword), hit this hotkey during your review to tell Dynamic Cards to not generate unnecessary rewordings for this note type.
  • Pause dynamic card generation: Temporaeily stop the generation of dynamic cards by pressing this hotkey during review. Press the hotkey again to resume dynamic card generation.
  • Platform: The platform hosting the model you're using.
  • API key: The API key to allow access to your platform's API.
  • Model: The model to use to generate card rewordings.
  • Max renders: The maximum number of alternative "versions" of a card to hold. The default is 3 to balance storage use with a healthy variety of cards. Increasing this will increase the number of rewordings of cards available to you.
  • Context: Instructions fed to the LLM to generate rewordings for cards. If the model is misbehaving, try rewording the context to suit your needs.
  • Retry count: If generating a cloze-style note and the model outputs an invalid result (sometimes the case), retry for this many tries. Note that this will slow down the application but will reduce the number of observed errors from LLM outputs.
  • Retry delay (sec): When redoing generations, wait this many seconds before retrying. Note that this is often necessary to avoid being rate-limited by LLM APIs; this has therefore been set to 1.0 seconds by default.
  • Clear cache on review end: By default, any card rewordings that you create are preserved even after you stop reviewing. Check this option to clear all rewordings once you stop a review session.
  • Excluded note types: A list of all note types that have been excluded so far. Double-click any note type to remove it from the list (and thus resume dynamic generation again for it).

Bugs and other issues

Found a bug? Please raise an issue so I can see it! Contributions are also welcome.