AnkiWeb
- Votes
- 1 (👍 1 · 👎 0)
- Updated
- 2026-10-11
- Anki versions
- 2.1.1~
- Languages
- Python, JavaScript, CSS, JSON
- Description language
- en
AnkiWeb addon 792637180
Lets you answer flashcards by typing, speaking, or handwriting, then has a chosen LLM grade the answer as correct, partly, or totally wrong and explain mistakes.
Open on AnkiWeb GitHub Ask about alternatives
active
| Min Anki | Max Anki | Updated |
|---|---|---|
| 2.1.1 | + | 2026-10-11 |
Loading…
Scores typed flashcard answers with a 0–100% AI similarity grade, optional partial credit, automatic Again/Hard/Good/Easy selection, and OpenAI or Gemini support.
Grades written Anki answers using an LLM, retrieves supporting material via semantic RAG, offers tutor explanations, analytics, batch assessment, and optional interval suggestions.
Turns Anki reviews into chat-based AI sessions that semantically grade typed answers, suggest difficulty ratings, and support follow-up questions using OpenAI or Gemini providers.
Adds a customizable floating typing panel and scratchpad for Anki review, letting users type answers or notes before revealing cards, with auto-clear and shortcut forwarding.
Randomizes image-occlusion answer-box placement each review and draws an arrow to the target, supporting forward/reverse/typing modes, context labels, and single-card cycling.
Adds a draggable, always-on-top overlay with global grading, flipping, audio and undo hotkeys, customizable styling, grading sounds, and an escalating Focus Dim system to keep reviews on track.
An Anki desktop add-on that lets you answer flashcards by typing, speaking, or handwriting, and has an LLM of your choice grade the answer as correct, partly wrong, or totally wrong. It can also explain what you got wrong.
It works for any subject (languages, biology, chemistry, IT, law…), because the grader reads the card itself rather than relying on exact string matching.
With this add-on you allow an LLM (AI) to grade you, as opposed of you grading yourself. On top of it - the LLM will explain what you got wrong and why. You can type the response, write them with a Wacom tablet, or simply speak the answers, and they will be converted into text
Providers: Anthropic (Claude), OpenAI, and any OpenAI-compatible server: Ollama, LM Studio, vLLM, llama.cpp, OpenRouter, or Google Gemini's OpenAI endpoint. On-prem models work offline.
Privacy: your answer and the card's text are sent to the AI provider you choose. Nothing is sent anywhere else. With Ollama, nothing leaves your computer. Voice is always transcribed locally. Google's free Gemini tier may use requests to improve Google's products, so use Ollama or a paid key for private material.
More info: https://github.com/heroforhire/anki-ai-grader/tree/main
An Anki desktop add-on that lets you answer flashcards by typing, speaking, or handwriting, and has an LLM of your choice grade the answer as correct, partly wrong, or totally wrong. It can also explain what you got wrong. It works for any subject (languages, biology, chemistry, IT, law…), because the grader reads the card itself rather than relying on exact string matching.
| Answer under the question… | …and get graded |
|---|---|
![]() |
![]() |
![]() |
![]() |
Requirements:
Privacy: your answer and the card's text are sent to the AI provider you choose. Nothing is sent anywhere else. With Ollama, nothing leaves your computer. Voice is always transcribed locally. Google's free Gemini tier may use requests to improve Google's products, so use Ollama or a paid key for private material.
llm_grader.ankiaddon from the releases, double-click it (or use Tools → Add-ons → Install from file…), and restart Anki.python tools/build.py, which writes dist/llm_grader.ankiaddon.For development (live-edit the source), link the add-on folder into Anki's add-ons directory:
# Windows, from the repository root
New-Item -ItemType Junction -Path "$env:APPDATA\Anki2\addons21\llm_grader" -Target "$PWD\llm_grader"
# macOS (Linux: ~/.local/share/Anki2/addons21)
ln -s "$PWD/llm_grader" ~/Library/Application\ Support/Anki2/addons21/llm_grader
On first start, a setup wizard opens (also available any time from Tools → LLM Grader → Setup wizard…). It offers three paths, and each one grades a test answer before it saves anything:
qwen3-vl 8B or 4B instruct), with live progress.Grading through the consumer ChatGPT or Claude.ai websites is deliberately not supported. Their terms forbid automated access outside the API, and it would also mean storing users' login sessions.
For everything else, open Tools → LLM Grader → Settings…:
| Provider | What to set |
|---|---|
| Anthropic | An API key (or the ANTHROPIC_API_KEY env var). The default model is claude-opus-5-5 at low effort. claude-sonnet-5-5 or claude-haiku-4-5 are cheaper. |
| OpenAI | An API key (or OPENAI_API_KEY). The default model is gpt-5-mini. |
| Ollama | Easiest via the wizard. Manually: ollama pull qwen3-vl:8b-instruct-q4_K_M (a vision model, needed for handwriting). No key needed. |
| LM Studio / vLLM / llama.cpp | The server URL and the model name. |
Click Test connection to confirm it works.
Voice works without any setup. The first time you press Record, the add-on offers a one-time download. After that, everything runs locally and offline:
| Download | Time per answer (measured on an i7-10870H laptop / RTX 3080 Laptop) | |
|---|---|---|
| Default (CPU): whisper.cpp with OpenBLAS + Small model | ~210 MB | ~1–2 s |
| Use my NVIDIA GPU (Settings → Voice): CUDA build + Large v3 Turbo model | +~1.25 GB | ~0.25 s |
user_files/whisper folder, which survives add-on updates. Delete downloaded files in Settings → Voice removes them.127.0.0.1 only. It starts loading the model while you're still speaking, and stops after 10 idle minutes and when Anki closes.stt_language per deck (e.g. es) makes short answers about twice as fast and avoids wrong-language guesses on one-word answers.brew install whisper-cpp once; the add-on finds whisper-server and downloads the model itself.Per-deck profiles (Settings → Decks):
[
{"deck": "Spanish*", "subject": "Spanish vocabulary", "strictness": "strict", "stt_language": "es"},
{"deck": "Medicine::*", "subject": "Pharmacology", "explanations": "always"}
]
llm_grader/
__init__.py entry point (only runs inside Anki)
reviewer_ui.py hooks: injects the panel, handles pycmd messages, grades in background
settings_dialog.py Qt settings UI
setup_wizard.py first-run wizard (Gemini free tier / Ollama / API key)
voice_recorder.py microphone choice, level meter, auto-stop recording
voice_local.py built-in Whisper inside Anki: download prompt/progress, server lifetime
web/grader.js|css answer panel: textarea, recorder button, pen canvas
core/ Anki-independent, unit-tested
config.py defaults, deck matching, per-deck profiles
text.py card HTML → text (strips FrontSide, marks cloze deletions)
prompts.py grading rubric + JSON schema
providers.py Anthropic / OpenAI / OpenAI-compatible over plain HTTP
grading.py call + robust verdict parsing → GradeResult
stt.py /audio/transcriptions client
whisper_local.py built-in Whisper: pinned downloads, resume, whisper-server process
audio.py WAV conversion, silence detection, auto-stop
speech_out.py what to read aloud, in which language
setup_helpers.py Gemini model choice, Ollama API, "is anything configured?"
card_will_show appends the panel or the verdict to the card. webview_did_receive_js_message carries submissions. webview_will_set_content loads the JS/CSS. Reviewer.onEnterKey and _defaultEase are wrapped, so Space/Enter submits on the question side and accepts the grade on the answer side.requests, which ships with Anki, so the add-on has no third-party dependencies.python -m unittest discover tests # core tests, no Anki needed
python tools/build.py # package
End-to-end test in real Anki: tests/e2e/run_e2e.ps1 starts a throwaway Anki profile next to your normal one, along with a mock LLM server. It then drives a review session (typing, real key presses, pen drawing, voice, an error and retry, skip) and the settings dialog. With -WhisperMirror <folder of the pinned files>, it also runs real speech (Windows text-to-speech) through the built-in Whisper on CPU and GPU, including the first-use download. It writes report.json, screenshots, and the received drawings to %TEMP%\llmg-e2e\out.
Open tools/preview.html in a browser to try the panel and pen canvas without Anki.
meta.json. Use environment variables if that matters to you.Copyright © 2026 the LLM Grader contributors.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License v3.0 as published by the Free Software Foundation. See LICENSE.