AnkiWeb
- Rating
- 0 (π 0 Β· π 0)
- Updated
- 2026-09-21
- Anki versions
- 2.1.50~
- Description language
- en
AnkiWeb addon 720072719
Provides an Australian-focused medical reference sidebar with hover popups, StatPearls and DrugBank, UpToDate and AI chat docks, and inline term highlighting.
Open on AnkiWeb GitHub Ask about alternatives
active
| Min Anki | Max Anki | Updated |
|---|---|---|
| 2.1.50 | + | 2026-09-21 |
Loadingβ¦
Adds a reviewer selection toolbar for OpenEvidence, UpToDate, and Google searches, optional Groq PICO/custom prompts, query history, and browser or in-app results.
Highlights recognised medical terms on Anki cards and shows StackMed clinical definitions and exam-focused explanations on hover, after secure browser-based account linking.
Highlights 3,200+ medical terms on Anki cards with hover or click explanations, offline lookup, analytics, customization, and optional account for enhanced images.
Adds reviewer context-menu entries that let users search the web for highlighted text via editable providers such as Google, Amboss, Pubmed, and UpToDate.
Hold Alt and hover over any card word to get a Claude-powered etymology tooltip explaining medical Latin and Greek roots, cached per session and configurable by language and modifier key.
Embeds ChatGPT in a docked Anki sidebar with hotkeys for pasting card text and faster explanations.
A medical reference sidebar for Anki. It highlights the conditions, drugs and clinical vocabulary already written on your cards, explains them on hover, and puts StatPearls, DrugBank, UpToDate and an AI chat one keystroke away without leaving the reviewer.
Built for Australian medical students, so drug names, units and spelling follow Australian conventions and clinical content is checked against Australian guidance first.
The reference library is a separate file from the add-on and updates itself over a content channel, so a corrected dose or a stale threshold reaches you without an AnkiWeb release.
Terms on the current card are underlined. Hovering one shows a summary; clicking opens the source.
Seven databases are matched:
| Database | Covers | Opens |
|---|---|---|
| Conditions | Diseases and syndromes, about 2,800 | A StatPearls chapter, or a search of the book where no chapter is mapped |
| Drugs | Generic and brand names, about 1,160 | DrugBank |
| Abbreviations | 436 acronyms carrying 463 senses | The condition behind the expansion, or a StatPearls search |
| Preclinical | Basic-science concepts | Wikipedia |
| Descriptive | Lesion morphology, symptom and lab vocabulary | Wikipedia |
| Psychiatry | Mental state exam phenomenology | Wikipedia |
| Signs | Examination and symptom vocabulary | Wikipedia |
The descriptive and signs databases exist because the gap was the wrong way round. Cards were resolving dermatomyositis and not poikiloderma, telangiectasia, myalgia or pathognomonic - but a reader who already knows the disease name reads past it either way, and one who doesn't is usually stuck on the descriptive word, because it is the part of the sentence carrying the finding.
Abbreviations are read in context. Where a key carries more than one sense, the rest of the card decides which one the popup shows, and fourteen acronyms that are also ordinary English words - OR, ALL, PET, CAP, AS among them - are left alone unless the card gives a reason to read them as an acronym. When the expansion resolves to a condition the popup carries that condition's whole summary, titled under both, as "HTN - Hypertension".
A term is underlined in the words your card uses, not the library's:
heart attack underlines where you wrote it, and the popup opens under
Myocardial infarction. A phrase still matches when a tag runs through
it, so <b>ectopic</b> pregnancy is one term rather than two halves.
You can add your own terms under Settings β General β Custom terms. They are matched ahead of everything shipped, so a term you define wins over the library's reading of it.
About 2,800 conditions carry a written summary rather than a first paragraph lifted from an article: definition, aetiology, investigations, management, red flags, Australian notes, PBS status and the rest of a fixed list of section labels. Most of those headings are clickable and open the article at that heading.
147 entries open a named document instead of a search. 95 point at an Australian source - RANZCOG, Safer Care Victoria, KEMH, RACGP, the Immunisation Handbook, STI Guidelines Australia, ANZCOR, NHMRC, the TGA - and 52 at a specific StatPearls chapter. The popup's button says which, so you know what you are about to open before you open it.
2,800 conditions also carry UpToDate searches, 4,288 of them, as green pills under the summary. They need your own subscription.
Six accent colours say where a popup came from, including one for summaries written for this add-on that have no chapter behind them, so the badge is not the only thing distinguishing them.
Hovering is intent-based rather than instant: a mark has to hold the pointer for 70 ms before it takes over from an open popup, and a pointer travelling towards that popup keeps it for up to 600 ms whatever it passes over. Double-clicking or dragging a selection across an underlined term copies the word rather than opening anything.
Open sources in, under Settings β General, chooses between the sidebar and your browser. It applies to whatever the sidebar can host: StatPearls, DrugBank, abbreviations, and custom terms pointing at a host the add-on already trusts. Everything else opens in your normal browser, which is most of the rest: the Wikipedia databases above, and the Australian guideline sites behind the 147 named sources. UpToDate links always open in the UpToDate dock.
Links written into your own cards are checked against the same host list before anything opens. An unrecognised one goes to your browser rather than into a dock holding your institutional session.
Three separate docks, side by side, each with its own toggle. All three can be open at once.
Ctrl+Shift+K sends the current text selection to the chat and
Ctrl+Shift+J sends the whole visible card: the dock opens, the message
box is focused, and the text is pasted through Qt's own paste so the
site's editor handles it the way it handles yours. Nothing is
submitted - pressing Enter is always your keystroke.
The dock lists articles matching terms found on the current card, ranked by how central each term is to it: whether it appears in the card's first field, how often, how early, and how specific it is. Only conditions and drugs are listed. The other databases are underlined on the card but have no article to offer.
It is a guess, so its header collapses to a strip you can click to bring it back. That is a judgement about the list rather than about one card, so it is remembered until you expand it again.
The term library ships inside the add-on and works offline. It also updates itself, because the thing you would most want corrected quickly is a wrong dose or a superseded threshold, and an AnkiWeb release is the wrong unit for that.
Once per Anki launch, on a background thread, the add-on fetches a small manifest from GitHub. Only if that manifest advertises newer content built for a schema this version understands does it download the library itself. What arrives is checked against the sha256 and the byte count the manifest declares, parsed as JSON, validated for structure, and required to carry the version the manifest advertised, before any of it is kept. Anything that fails is discarded in favour of the copy you already have.
A new library takes effect at the next Anki launch rather than mid session: the matcher is built once at import, and swapping the data under a running reviewer would leave the two disagreeing.
Settings β General β Reference database holds the switch, the version in use, and a Check now button. Turned off, the add-on makes no content request at all.
From AnkiWeb, or download
the .ankiaddon from
Releases and open
it with Anki.
Qt 6 is required. The package installs from Anki 2.1.50 upwards and the code is kept compatible with it, but development is against current Anki, so that is where it is exercised. Some features need newer Qt: the dark rendering of reference pages needs Qt 6.7+, and degrades to normal light pages below that.
| Action | Default |
|---|---|
| Toggle StatPearls / DrugBank | Ctrl+Shift+S |
| Toggle UpToDate | Ctrl+Shift+U |
| Toggle AI chat | Ctrl+Shift+A |
| Search selection in UpToDate | Ctrl+Shift+L |
| Send selection to AI chat | Ctrl+Shift+K |
| Send whole card to AI chat | Ctrl+Shift+J |
macOS maps Ctrl to β, so these appear as ββ§S and so on.
All of them are editable under Settings β Shortcuts: click a field, press the keys you want, and the new binding applies as soon as you close the window. Clear a field to disable that shortcut. Restore defaults is there if you lose one, and clashing bindings are flagged.
These bindings are global, so that they work while the reviewer holds focus in a webview. That rules two things out. Escape cannot be bound, with or without a modifier, and neither can a bare key without one, which would fire while you were typing. Either would be taken from Anki everywhere. A field set to one is left at its previous value, and one saved by an older version is cleared at the next launch, with a message saying which binding went and why.
Tools β The AnkiDote β Settings, in four tabs:
Everything writes on close, matching Anki's own Preferences. Every setting also has a config key; see config.md.
A welcome dialog runs once on a fresh install and can be run again from Tools β The AnkiDote.
raw.githubusercontent.com for the manifest, and github.com with
release-assets.githubusercontent.com for the library file it points
at, downloaded only when the manifest advertises a newer one.
objects.githubusercontent.com is accepted as well, since that is
where the file used to be served from. The requests are plain HTTPS
GETs carrying nothing about you, and turning the switch off under
Settings β General β Reference database stops them entirely.Issues and pull requests: github.com/mord58562/theankidote
Bug reports are much easier to act on with a diagnostic log: turn on Settings β Advanced β Verbose logging, reproduce the problem, then use Show log.
Tests live in tests/ and run with plain python3 - no Anki required:
python3 tests/test_security.py # untrusted content, updater, URL trust
python3 tests/test_vocab.py # database integrity, popup height budget
python3 tests/test_library.py # library validation, publishing contract
python3 tests/test_reviewer.py # matching, marking, popup payloads
python3 tests/test_toolbar_order.py
Run them as scripts rather than under pytest: collection imports
__init__.py, which imports aqt at module scope, and every file
errors out before a test runs.
The suite is deliberately small and covers one thing: defects that do not announce themselves. A broken phrase matcher is obvious on the next card; a summary that quietly joins the scrolling backlog, an override baked into its own base text, or a URL that Python and Chromium parse differently are not. Tests that restated the implementation were removed at 2.2.
Every release is in CHANGELOG.md. The current version's notes are also in WHATS-NEW-2.8.0.md, which ships inside the add-on.
GPL-3.0-or-later. See LICENSE.
Clinical content is compiled from public sources and is intended for study. It is not a clinical decision tool and carries no warranty - check current guidance before acting on anything you read here.
Version history is in CHANGELOG.md.