Skip to content

Releases: ankitects/anki


09 Nov 11:23
@dae dae
Choose a tag to compare

What's Changed


  • Update all platforms to Qt 6.6. This change fixes Japanese input on macOS.
  • Fix Anki failing to run on older macOS versions.
  • The Linux Qt6 build requires a newer glibc, so older distros like Debian 11 won't work with it.
  • Fix syncserver failing to run in macOS packaged build.
  • Fix some potential security issues.
  • Fix 'creating backup' showing for longer than necessary.
  • Add tooltip to mask editor button.
  • Allow creation of empty filtered decks by @Gustaf-C in #2788
  • Add confirmation for upload when AnkiWeb collection determined empty.
  • Fix add-ons screen showing 'requires Anki >= 2.1.231000'.
  • Fix overflowing filenames displacing import button by @RumovZ in #2806
  • Fix Anki closing before 'your clock is wrong' message appears.
  • Hide "toggle masks" in "Hide One, Guess One" mode by @abdnh in #2817
  • Change tooltip strings for image occlusion center alignments by @snowtimeglass in #2815
  • Check video tags in media check.


  • Prompt user to save preset changes before they compute FSRS weights.
  • Fix panic when enabling FSRS with add-on-rescheduled cards.
  • Add an info box so the non-linear nature of desired retention can be seen
  • Improve presentation of log loss and RMSE by @user1823 in #2805
  • Rename FSRS weights to parameters
  • Handle stability < 0.5 in stability graph

New Contributors

Full Changelog: 23.10...23.10.1


31 Oct 22:25
@dae dae
Choose a tag to compare

Notable changes

  • Anki's version numbering scheme has changed to year.month(.patch).
  • Quite a few add-ons will need updates to support the Qt 6 version of this release. Some porting notes are available.
  • Support for FSRS (which improves upon the scheduling provided by SM-2) is now integrated into Anki. You can compute the model weights directly inside Anki, and no longer need to use custom scheduling. If you have previously used FSRS, please delete the text in the custom scheduling section before enabling FSRS, and ensure the helper add-on has been updated to the 23.10 version if you are using it. By @L-M-Sherlock with help from @dae and @asukaminato0721 in #2633, #2654 and
  • Anki now has built-in support for creating image occlusions. Select the automatically-added "Image Occlusion" notetype in the add screen to use it. Glutanimate intends to update his add-on soon to work with the new system. By @krmanik, with help from @glutanimate, @hikaru-y, @abdnh and @dae in #2367, #2485, #2600, #2602, #2649, #2689, #2705 and more.
  • .apkg imports are able to merge changed notetypes, and can exclude scheduling data. By @RumovZ in #2612
  • Performance improvements to things like browser loading in the official builds.
  • You can now customize the video driver in Qt6 in the preferences, which can help to work around graphical issues. @abdnh in #2643
  • Add an option to stop the timer on answer by @abdnh in #2673
  • Allow searching for missing custom data properties by @abdnh in #2626
  • Support searching for custom data strings by @abdnh in #2634
  • Support for the v2 scheduler has been dropped.
  • .apkg exports now default to the new format.
  • New cards can now be gathered by deck then random note.

Smaller tweaks/fixes

  • Add a backend method to add notes in bulk by @abdnh in #2659
  • Add ability to tab to DuplicateLink by @SteelColossus in #2646
  • Add profile name in profile deletion confirmation message by @chandraiyengar in #2722
  • Add Sphinx documentation generation functionality by @gsingh93 in #2720
  • added Translator by @platynowy in #2653
  • Allow full screen mode on new Qt6 drivers by @abdnh in #2660
  • Allow saving window position when window fullscreen on Qt 6
  • Better error messages when csv file is in the wrong format
  • Change “Delete Note” shortcut to cmd+backspace by @montyevans in #2614
  • Check DB now fixes invalid UTF-8 in tags.
  • Close import log page on error by @abdnh in #2639
  • Display a more friendly message when one or more add-ons fail at startup
  • Do not show [object Object] in import log by @abdnh in #2636
  • Don't rely on the presence of revlogs to decide whether deck configs should be imported.
  • Fix a11y issues with Badge component by @adeleke5140 in #2721
  • Fix an error when repositioning tags (thanks to @abdnh)
  • Fix an issue caused by adding a colon to the start or end of a deck name by @swektr in #2748
  • Fix answer button tooltips not reflecting configured shortcuts by @abdnh in #2657
  • Fix error when closing Find Duplicates screen early by @abdnh in #2669
  • Fix intermittent browser error triggered by an early resize event by @abdnh in #2671
  • Fix misleading warning when changing notetype from/to cloze by @abdnh in #2744
  • Fix ModuleNotFoundError: No module named 'distutils' by @virinci in #2723
  • Fix pasting from external programs not working after copying text inside the editor.
  • Fix reversed float left/right icons
  • Fix some issues with undo/redo in mask editor by @hikaru-y in #2649
  • Fix typo: notetypeId → noteId by @glutanimate in #2615
  • Fix unable to save field dialog if certain fields are deleted by @swektr in #2663
  • Fix unescaped HTML in type-in-the-answer by @abdnh in #2658
  • Implemented support to audio_did_seek_relative by @evandrocoan in #2632
  • Reduce shaking of bottom bar by @abdnh in #2734
  • Rework media syncing to make it a little faster, and avoid duplicate errors when your password has changed. #2647
  • Skip template checks in Fields screen by @abdnh in #2670
  • Support AVIF by @nihil-admirari in #2630
  • Support Qt.TextFormat.MarkdownText in aqt.utils by @abdnh in #2675
  • The "edit current card" window is now a main window, which fixes some shortcut keys on macOS. By @abdnh in #2732
  • Tooltips for CSV import and import page refactoring by @RumovZ in #2655
  • Tweak browser column labels to card type, note type by @Gustaf-C in #2751
  • Change export notes' parent window in card browser by @kelciour in #2761
  • Fix Linux install script CWD check by @virinci in #2775
  • Make it possible to silent uninstall with WinGet by @kelciour in #2757
  • Refresh reviewer as the day rolls over by @abdnh in #2756
  • Update to Qt 6.5.3 on Windows/Mac
  • Fix error on 'Previous Card Info' when deleting a note by @abdnh in #2790
  • Fix HTML editor not displaying properly when expanding field by @hikaru-y in #2792

Notes for devs

  • If you wish to build Anki and have installed n2 in the past, please run tools/install-n2 before building.

New Contributors

Full Changelog: 2.1.66...23.10


19 Aug 23:36
@dae dae
Choose a tag to compare
  • Windows and Mac builds have been updated to the latest toolkit version,
    which will hopefully fix some crashes/bugs.
  • The v3 scheduler is now the default for new users.
  • When imports complete, a summary window is now shown (thanks to Abdo).
  • Use a different approach for detecting copy+paste from Anki fields, which may fix some crashes.
  • The minimalist/reduce motion toggles should no longer affect card content.
  • Media check now automatically extracts images that have been embedded in fields.
  • Handle importing of legacy AnkiDroid backups.
  • The built-in sync server can now be built without Python if you prefer.
  • Add keyboard shortcut for legacy stats (thanks to Luc).
  • Accessibility improvements (thanks to Derek and Kenny).
  • Fix addon update dialog showing twice (thanks to Rumo).
  • Fix bold toggle not working in certain circumstances (thanks to mmjang).
  • Align code blocks to left (thanks to shunlog).
  • Make weekday font smaller for Chinese locale (thanks to mmjang).
  • Improve performance of invalid ID fix in DB check.
  • Fix main window geometry/state not being restored in some cases (thanks to Abdo).
  • Handle invalid float mtimes in DB check.
  • Fix total note count not being logged in apkg import.
  • Report actual error when DbError occurs.
  • Fix two issues with MathJax editor (thanks to Hikaru).
  • Don't fail silently when an empty csv is imported.
  • Fix two issues that can cause editor fields to behave incorrectly (thanks to Hikaru).
  • When cards are in intraday learning queue, don't use original due.
  • Fix "Add-ons possibly involved" message never appearing on Windows (thanks to Abdo).
  • Add partial support for Hangul keyboard shortcuts during review (thanks to Christopher).
  • Disable add-on buttons when no field is focused by default (thanks to Abdo).
  • Fix toggleable editor button styles (thanks to Abdo).
  • Fixed a sporadic error in the review screen (thanks to mjuhanne).
  • Fixed an error that could occur when syncing between newer and older clients.
  • Fixed tab order in find&replace screen (thanks to Gabriel).
  • Various other minor fixes and behind-the-scenes changes.

Dev related:

  • Fix incorrect handling of locals in debug console (thanks to Rumo).
  • Add did-add-field-hook analogous to did-delete-field (thanks to 3ter).
  • Fix run-qt5.15.bat (thanks to Hikaru).
  • Support more mime types for add_extension_based_on_mime (thanks to BenYip).
  • Make set_config_help_action work with submodules (thanks to Abdo).
  • Exclude Fabric's large canvas dependency (thanks to Kavel).


31 May 06:45
@dae dae
Choose a tag to compare
  • Default to current deck in csv import if settings allow it.
  • Disable Toggle Bury when nothing is selected (thanks to Abdo).
  • Fix broken window styling when installation path includes certain Latin1 chars on Windows.
  • Fix illegible tooltips when system in dark mode on some Linux installs.
  • Fix incorrect font sizes on X11 when fractional scaling in use.
  • If the old Anki uninstaller fails, allow installation to proceed.
  • Improve phrasing in dialog that asks which deck's options should be shown (thanks to chrissy0).
  • Fix some add-on installation errors not being reported (thanks to Abdo)
  • Add add-on installation hooks (thanks to Abdo).


24 May 05:40
@dae dae
Choose a tag to compare

Functional changes:

  • The Windows installer no longer requires admin access (thanks to Martin). The first time you
    update, you'll need to run the installer again after uninstall completes.
  • Allow the user to configure answer keys in the preferences, fixing conflicts (thanks to Ren).
  • Preload embedded fonts to prevent flicker, and tweak wait time for image preloading (thanks to Hikaru).
  • Add the ability to search for FSRS scheduling properties, eg. prop:cdn:d>0.5 to search
    for the difficulty > 0.5.
  • Window positions, state and browser headers are now reset each time the Qt version changes,
    which should fix a number of crashes that users were reporting.
  • Add-on shortcuts will now override Anki defaults (thanks to Ren).


  • Fix media files being imported incorrectly when importing an .apkg file exported without support for older
    Anki versions.
  • Increase the number of supported fields in the editor (thanks to Hikaru).
  • Attempt to work around intermittent color setting failures in Qt6.5 on macOS.
  • Fix ugly text rendering on Wayland when using fractional scaling.
  • Fix inability to import csv when path contains single quote.
  • Show an error pop-up when csv import screen fails to load.
  • Don't disable animations on card templates when reduce motion is on.
  • Fix an error in the console when resizing windows (thanks to Austin)
  • Fix a panic when user sets a huge learning step.
  • Fix page scrolling when input box loses focus (thanks to Hikaru).
  • Fix failure to start on Windows when path contains non-Latin text.
  • Fix due/ivl prop queries not working in filtered decks.
  • Make some collection methods public in the Rust API (thanks to Joel).


09 May 08:53
@dae dae
Choose a tag to compare
  • Add alternative review shortcuts (h,j,k,l,u) (thanks to Ren).
  • Add an option in the preferences to stop spacebar from rating card (thanks to Ren).
  • Prevent change in image aspect ratio in editor when images have an explicit size set (thanks to Matthias).
  • Fix custom sync URL not working with subpaths (thanks to XeR).
  • Fix fcitx5 failing to work in Linux Qt6 build.
  • Fix some buttons in the deck options screen being illegible when hovering.


01 May 02:58
@dae dae
Choose a tag to compare
  • Update macOS/Linux builds to Qt 6.5, and update Windows build to Qt 6.4.3.

    • The minimum macOS version for the Qt6 build is now macOS 11.

    • If you are on Linux and don't have ANKI_WAYLAND set, you may need to install
      libxcb-cursor or Anki will fail to start. Eg on Debian/Ubuntu:

      sudo apt install libxcb-cursor0

  • Add an option to fully randomize reviews in the V3 scheduler.

  • Add a new option to the card templates screen to restore a notetype to the
    default fields/templates/styling.

  • Add clearer tooltip to hourly breakdown graph (thanks to Rumo).

  • Fix focus loss when closing HTML editor (thanks to Hikaru).

  • Prevent MathJax editor from closing when you selected text with the mouse and
    released the mouse button outside the window (thanks to Hikaru).

  • Pass original deck name to custom scheduling code, instead of filtered deck

  • When importing an .apkg where notetypes have changed, display a clearer
    message, and only if the notes in the incoming collection are newer.

  • Fix MathJax editor not being sized correctly (thanks to Hikaru).

  • Fix a flicker when dropdowns shown with reduce motion on (thanks to Hikaru).


31 Mar 03:36
@dae dae
Choose a tag to compare

Improvements to the V3 scheduler:

  • Added a global option to stop the review limit from limiting new cards (thanks
    to Rumo).
  • You can now enable review burying without new burying again (thanks to Rumo).
    There are some caveats - please see the bury tooltips in the deck options.
  • Ensure good is at least previous+1 even if low hard factor set.

Other features/improvements:

  • You can now exclude certain fields from unqualified searches via the Fields
    screen (thanks to Abdo).
  • The tag area in the editor is now shown with a dropdown instead of a splitter
    (thanks to Matthias).
  • You can now adjust the current deck in the stats screen (thanks to yellowjello).
  • Add a button in the preferences to reset window sizes (thanks to Abdo).
  • Passing an invalid profile name on the commandline will now show profile
    picker instead of an error.
  • You can shift-click on a deck to select it as the current deck (thanks to
  • You can now import decks with broken timestamps - they'll automatically be
    fixed on import (thanks to Rumo).
  • A DB check will now fix broken timestamps (thanks to Rumo).
  • Add time of date to browser date.
  • Allow Shift+Tab to move focus from tag area to last field (thanks to Hikaru).
  • Custom schedulers now have the deck name and random seed passed in to them, so
    they don't need to extract the info from the DOM (thanks to Rumo).
  • Improve debug console (thanks to Rumo).


  • Fix stats calendar incorrect due to daylight savings time (thanks to Kieran).
  • Prevent the top bar from hiding in the stats page as you scroll down (thanks
    to Fabricio).
  • Reduce motion is now on by default, as it fixes an issue with the bottom bar
    failing to appear for some users.
  • Fix new limit in v3 decreasing more than it should (thanks to Rumo).
  • Fix current tag text not being saved when changing note via shortcut key
    (thanks to Hikaru).
  • Fix tags popover becoming separated from the tags field (thanks to Fabricio).
  • Ensure the bottom buttons aren't displayed until the custom scheduling code
    has finished running (thanks to Rumo).
  • Refresh study screen if the user toggles the v3 scheduler (thanks to Rumo).
  • Fix notetypes screen not being closable after adding a notetype on Mac.
  • Check for division by zero when calculating browser aspect ratio, which fixes
    an issue with i3 (thanks to Ben).
  • Fallback to Wayland if X11 is not available (thanks to Ingemar).
  • Tweaks to the build scripts to make packaging in distros easier (thanks to
  • Fix silent file save failures and bad default save path in Flatpak (thanks to
  • Fix HTML editor sometimes not properly sized when opening editor (thanks to
  • Fix error showing if user clicks in sidebar before it's rendered.
  • Fix backup creation for collections > 1 GiB (thanks to Rumo).
  • Fix black on grey minimalist buttons in Qt5 (thanks to Daniel).
  • Fix black on grey deck options on Qt5 (thanks to Daniel).
  • Export static references from sound tags (thanks to Rumo).
  • Fix packaged audio tools path on Windows (thanks to Abdo).
  • Fix a case where 'reduce motion' and 'minimalist mode' were switched (thanks
    to Daniel).
  • Fix panic with invalid sync server URL with port (thanks to Daniel).
  • Fix double scrollbars in deck options (thanks to Fabricio).
  • Fix images with non-Latin text and commas failing to display.
  • Fix editor text possibly being transfer to different notetypes (thanks to
  • Improve hover appearance of buttons (thanks to Matthias).
  • Fix inability to activate search in graphs screen on Android (thanks to
  • Fix an issue building on Windows (thanks to Kieran).


22 Feb 06:41
@dae dae
Choose a tag to compare

If updating from 2.1.57 or earlier, please see the important note in the 2.1.58 change notes.

  • Add button to tag notes with missing media (thanks to Rumo).
  • Fix slow editor startup for users with lots of fields (thanks to Hikaru).
  • Fix a regression in 2.1.58 that broke TTS add-ons (thanks to Rumo).
  • Fix HTML editor hiding when shown by default (thanks to Fabricio).
  • Fix some widgets not indicating they're disabled (thanks to Matthias).
  • Fix deck options selector not updating the current entry sometimes (thanks to Fabricio).
  • Fix type box losing focus when switching IMEs (thanks to Hikaru).
  • Fix 'toggle bury' not updating for automatically-buried cards.
  • Improvements to lifecycle handling for add-ons accessing Svelte components (thanks to Matthias).


22 Feb 02:39
@dae dae
Choose a tag to compare

This release has been yanked due to a packaging error. Please see 2.1.60 instead.