Show HN: Anki AI Utils (github.com)
Anki AI Utils is a suite of AI-powered tools designed to automatically improve cards you find challenging. Whether you're studying medicine, languages, or any complex subject, these tools can:
- Explain difficult concepts with clear, ChatGPT-generated explanations.
- Illustrate key ideas using Dall-E or Stable Diffusion-generated images.
- Create mnemonics tailored to your memory style, including support for the Major System.
- Reformulate poorly worded cards for clarity and better retention.
Key Features:
- Adaptive Learning: Uses semantic similarity to match cards with relevant examples.
- Personalized Memory Hooks: Builds on your existing mnemonics for stronger recall.
- Automation Ready: Run scripts daily to enhance cards you struggled with.
- Universal Compatibility: Works across all Anki clients (Windows, Mac, Linux, Android, iOS).
Example:
For a flashcard about febrile seizures, Anki AI Utils can:
- Generate a Dall-E illustration of a toddler holding a teacup next to a fireplace.
- Create mnemonics like "A child stumbles near the fire, dances symmetrically, has one strike, and fewer than three fires."
- Provide an explanation of why febrile seizures occur and their diagnostic criteria.
Call for Contributors:
This project is battle-tested but needs help to become a polished Anki addon. If you’re a developer or enthusiast, join us to make these tools more accessible!
Check out my other projects on GitHub: [Anki AI Utils](https://github.com/thiswillbeyourgithub)
Transform your Anki experience with AI—because learning should be smarter, not harder.
47 comments
[ 2.4 ms ] story [ 97.5 ms ] threadThe image generation can do with ComfyUI integration. This will expand the illustration options beyond stable diffusion. It will also allow for more options within stable diffusion too.
I might raise a PR tomorrow if I have the time.
I added a couple settings like word order(matters: colors of the rainbow, doesn't matter: bones of the skull), anagram vs sentence, etc. At the time the biggest difficulty wasn't necessarily generating a coherent sentence - it was ensuring the "novelty" of the mnemonic. The less surprising the less likely its going to stick.
Fun little tidbit - by adding a "NSFW" flag - I made it so the markov chain would heavily weight racy/saucy/lewd words. End result, VERY VERY evocative mnemonics that were completely and utterly incapable of being shared.
Demo:
https://www.youtube.com/watch?v=MTAbVBOMdbk
Slightly off topic, but maybe an idea for someone to pursue... I figured out at a very early age that I could not memorize text in a script, or poetry, or even flashcards very well. But because I started playing piano at a very early age, somehow I could remember song lyrics verbatim. I could probably sing/recite at least 200 CDs worth of lyrics end to end.
When I wanted to learn Spanish, memorizing songs was way more helpful than anything else I tried. Even if I didn't understand all the words at first, suddenly a lyrical phrase would become clear when I heard some of the words in a conversation.
I'm not sure AI is up to writing really memorable songs yet. But for those of us with some kind of synesthesia, there could be lots of associations that aid memory, like colors, melodies or rhythms.
I will try your idea to create a bunch of Spanish and Italian (2 foreign languages I was/is learning) songs to see how well it would work for me.
If you try it tell us how it goes in a github issue!
Also I recommend giving openrouter a try to quickly test multiple LLMs. In my experience claude sonnet 3.5 is slightly worse in super strict rule adherence but way better at wordplays than 4o so might be better for lyrics. I'm suspecting a secret sauce in their secret tokenizer. Don't know yet about deepseek-chat, which I'm migrating all my apps too.
I’ve actually been working on a similar-ish Anki Plugin for about 6 months - it can autogenerate any field via LLM in bulk, as well as images and TTS. I’m not explicitly targeting the med school use case as much yours (I use it for language learning), and it’s more GUI centric/geared towards non-technical Anki users who don’t want to fiddle with a bunch of different API keys etc. Was planning to launch HN soon but you beat me to the punch!
https://ankiweb.net/shared/info/1531888719 https://smart-notes.xyz
By the way, the new LLM by deepseek called deepseek-chat is very good and actually on par with Claude Sonnet 3.5, so you might want to give it a try. Openrouter and litellm help a lot.
Also, my projects are not actually aimed at medical learners, I just happened to be one! I went to create lengths to make it adaptable to any learning scenario and types of learners, etc :).
Looking at your project, it seems like there is definitely an opportunity for merging efforts. If I get that right, you are not implementing few shot learning and a few other features like mnemonics and anchors and major system. Do you think there is a possibility that wa can talk reusing some of my code and features? I can think of ways to make few shot learning painless UI wise.
I semi-secretly made that release to -> make my scripts more well known to -> help me find people who could help me make it available for laymen (I am painfully aware that my features are currently only available for nerds although I made great efforts to document the whole thing and make good code!).
Honestly, it looks like your awesome project might be the opportunity I was looking for! Are you interested in trying to make it so good that we can scale and even make (on average) better doctors :D!? Please get in touch!
I would assume they're alternatives
I've been in the spaced repetition community for years and we honestly feel extremely niche and small even amongst eachother. It's cool to see that the community might be larger than I thought.
Personally, I would love to have the dopamine response that allows for repetitive tasks to become appealing. Unfortunately, I've roasted my attention with social media and YouTube.
However, this seems different.
> automatically improve cards you find challenging.
This is not something I have seen any of those other tools attempt to do yet :-)
I'm particular to the worked example [2] as a tool similar to mnemonics. A real world or toy example is presented, and the worked example breaks down the step by step actions needed in order to "do a thing". For example to represent the "running total" use case of variables or a Singleton design pattern, not only is it beneficial to know what these techniques "are" but also some examples on how the are "used". This is where ICAP proposes there are different modes the learner can engage when while learning the material. In this light, I think of flashcard memorization as a passive learning activity. This doesn't make it lesser, only suggesting there are more engaging activities you may need to engage in in order to really know a concept.
I think having an LLM generate the various ICAP modes would provide additional learning opportunities for those that do use Anki. In a similar vein to creating a flashcard, an LLM-driven Anki card set could include an "Activity Creation" tool to determine which type of learning activity to generate. Computer Science for example uses several types of learning activities like Parson Problems, Self-Explanation, Output Prediction, and simple Typing Exercises to help convey concepts, each with their own benefits for targeted learning at a different ICAP modality [3]. The activity creation tool in turn would select the appropriate modality, the respective activity, and generate a 'card' based on that activity.
[1] https://files.eric.ed.gov/fulltext/EJ1044018.pdf
[2] https://en.wikipedia.org/wiki/Worked-example_effect
[3] https://files.eric.ed.gov/fulltext/ED615631.pdf (Yes, this one is mine because of course I'd shoehorn my thoughts on practice here)
He provides some scientific foundation behind the recommendations he makes, specifically his recommendations around mind mapping and _how_ to do it properly. His process puts mind mapping firmly in the _Interactive_ mode. The results are truly unbelievable.
So much so that after investing 20 hours to mind map a book for myself 7 months ago, I can recall practically all the information I mind mapped without rehearsal.
Mind mapping makes up probably 70% of my learning these days, then I have a long-form written system for the other 29%, and sometimes, when I have a little isolated fact that doesn’t fit in either system, I turn to SRS for memorization of the last 1%.
Once I was in the program, I focused most of my research in reading where cog sci was being used for stem, but also for general practice research. I've been training martial arts for almost 20 years now, so some of the research was me double dipping in how to improve teaching CS and punching people.
Honestly, I still argue that martial arts' spaced repetition was a bigger influence on how I view learning. I need to allocate 2-4 hours 1-4 times a week for practice (4 when I was younger and could get away with it; correct due to immediate feedback from my partners; and have a giant support network of people through the US that make me vested in not only the art but their lives as well. I acknowledge the benefits of meta-cognitive methods like planning and self-reflection, but they feel more theory than application.
Planning is great until you're a novice that doesn't know what to train next. Then you are just a struggling student receiving negative reinforcement, which only amplifies any imposter syndrome you already have. Sadly, there isn't much research exploring how physical athletes learn beyond simple spaced repetition. There's some work in interleaved practice [1] but since physical training is more or less "solved", progress is slow.
Instead, I focus on the various lower-level practice activities so students can acquire subskills without needing to program. Then, I heavily encourage building a 'sense of community' [2], not through group projects (which have their own faults) but rather in simply "giving a damn" about your classmates' progress.
At the end of the day, I think learning is heavily a "time on task" [3] problem and determining how to structure lower-level practice and toy examples that encourage you to keep with it and break Carol Dweck's "fixed mindset" [4].
I'd like to dig deeper into how to properly structure practice across ICAP modalities, but the sheer number of variables and even determining how many activities should be in a practice is too complex of a problem without a very large sample size.
[1] https://effectiviology.com/interleaving/
[2] https://en.wikipedia.org/wiki/Sense_of_community
[3] https://www.thisiscalmer.com/blog/time-on-task-learning-stra...
[4] https://learning-theories.com/mindset-theory-fixed-vs-growth...
One comment I would make on your approach to putting anki to work for you with medicine, is that it seems to rely on a 'factoids' approach, as opposed to a 'systematic' approach. This may not be the case with your learning more generally, but this is how your anki seems to be structured, so I am keen to make this observation: the problem with a 'factoids-based learning' approach, which unfortunately is all too common in medical education, is that it can backfire spectacularly, especially in an unstructured learning environment such as medicine, where physicians at ward rounds are much more likely to want to show you 'cool stuff' and 'exotic diagnoses', when they should be creating an appreciation and understanding of the 'boring' stuff first in a systematised manner instead. So you then go to final exams knowing all about cool factoids like what "moya moya" disease is and how it means 'puff of smoke' in japanese, but don't really quite know why right-sided heart failure doesn't quite immediately also cause left-sided heart failure directly and vice-versa, even though in theory it's all a connected tube. (totally random example, I assure you :p ).
One thing I did ages ago when I was finishing my own medical school journey (which I later deviated from to become an academic / biomedical engineer), was to formulate a "systematic approach to medicine". Everybody always talks of needing to have a 'system' when you first learn medicine, but nobody ever seems to quite know what this system is. So you need to figure out your own.
In the context of your systematic learning via Anki, I would advise you to formulate your cards such that they address all specific aspects of such a systematic approach. One way to do this via Anki specifically, would be to create a note type that goes through all aspects of that system per condition, but then generates specific cards for the parts that you want to extract as individual cards (rather than treating the whole note type as one mega-card you need to learn). This would not only help you be systematic in your learning, but it would also help you flag where gaps exist in your knowledge-base, since it would become immediately obvious at the point of creating your note, where areas of the 'system' are unaddressed.
Here is the link to my old 'system'. Feel free to take inspiration from it. (though if you do end up copying / using it formally in some capacity, I would appreciate an acknowledgement... :) )
https://sr.ht/~tpapastylianou/systematic-approach-to-medicin...
(or https://github.com/tpapastylianou/SystematicApproachToMedici... if you prefer github).
Hope it helps with your preparation! Good luck with the finals!
I've tried out AwesomeTTS but found it a bit too complicated. Just want to automatically add TTS with one click ideally.
Thank you for using litellm + all your issues on our repo! @Ey7NFZ3P0nzAe
- litellm maintainer