I’m thrilled to introduce AnkiAIUtils: Reformulator, a tool designed to automatically improve your Anki cards by rephrasing them for clarity and consistency I made during medical school.
What it does:
Rephrases poorly worded or unclear cards while preserving their core meaning.
Maintains cloze deletions, media, and formatting.
Tracks all changes for easy review and rollback.
Why I’m proud of it:
This tool has batshit insane potential to save you hours of manual card editing. It’s especially useful if your idea of a “perfect” flashcard has evolved over time (looking at you, med students!). Above all, it is not opinionated and will formulate the cards just as you would have!
Example:
Original:
bilateral and symmetric alveolar syndrome, perihilar, often with effusion, what to consider?
{{c1::APE}}
Reformulated:
What should be considered in presence of bilateral and symmetric alveolar syndrome, perihilar, often with effusion?
{{c1::In case of bilateral and symmetric alveolar syndrome, perihilar, often with effusion, one should consider APE.}}
How to try it:
Head over to the GitHub repo for setup instructions and examples.
Call for help:
This is a free, open-source project, and I’d love to see it grow. If you’re a developer and want to help turn this into an Anki addon, let’s collaborate!
Also, don’t forget to check out my other Anki-related repositories—I’ve got a bunch of tools that might interest you.
I see these are all different tools, but shouldn’t you post them all in one place? It feels a bit spammy otherwise with 6 different posts leading you to the same github repo. @moderators ?
Can I Fork them and use them freely? (e.g. I will make it a customized add-on and upload it to AnkiWeb.) Your programs are advanced so if those are to become Anki add-ons I think they need complicated changes.
Yes, I am aware it could look spammy and I am really sorry if you saw it that way. The thing is I was worried that I would miss on the opportunity of many users typing, for example, “stable diffusion Anki” and not seeing anything strictly about it. Because AnkiAIUtils is kind of general and I couldn’t really split up the GitHub repository either As this project was free and open-source I decided to “advertise” it anyway like that because enhancing reference for this kind of project seemed ethical to me :). Also as you can imagine i’m spread pretty thin right now so couldn’t either trickle them down. I’m really glad the mods here were understanding and want to thank them!
I think it depends on what you mean exactly by “freely” because I originaly put an open source license on it. Do you mind opening up an issue on the repo to talk details? I’m sure we can work something out as indeed my end goal was to make them usable to as many others as possible! With that goal in mind I’m super flexible term wise but let’s make sure we don’t end up in some lawyery voodoo mess (I could totally be overthinking this, let’s find out!)
Yep, the license is so. If you plan to develop GUI and release it as an add-on in the future I think there is no need for me to develop it, because it is duplicative.
It’s just an idea for now, so no suggestions or discussion from me, and I will not know until I develop it.
. If you plan to develop GUI and release it as an add-on in the future I think there is no need for me to develop it, because it is duplicative.
Alone I have no plan for the GUI nor the packaging because I know I won’t have time to spent on getting familiar with the quirks of packaging for anki so definitely would welcome anyone helping out! As you are not the only one to have hinted at addonifying those I recommand you keep an eye on the project to know if someone makes progress on it and we can all gain time!
Perhaps to do this requires actually developing an add-on and distributing it to users then debugging it to make sure it works well, so I think it would be possible to help after development, not before. (unless you do the GUI and packaging yourself)
Alternative might be to develop something like browser tools or external an app instead of add-ons. Since you are already using AnkiConnect I think it is technically possible.
If you want them to be add-ons I suggest you make time to look into them for GUI and packaging.
Maybe I can package them, but if you are not interested in GUI and packaging my code will just be spaghetti code, because I don’t have the resources to explain them.
Simply put, to make them add-ons, modules not included in Anki need to be incorporated into the add-on, but modules that include C extensions are a bit more complicated.
For now what type of info or help do you need?
Even if I gave you step by step (e.g. when I have time) instructions on how to add-on you seem not to have the time to look them up. However I think rewriting them in a fork or pull request would result in a different project. So I understand you want to make them add-ons, but I don’t know how you are planning to do it.
I think if someone refactored the code a bit to have a single base class where each util (illustrator, explainer etc) is just inheriting from that class would be a great step up because then making it into addons would be more straightforward packaging wise. Then we would need a minimalist gui to set a few settings and trigger them I guess.
The code is not very messy but it’s a still somewhat messy because initially it started as a collection of separate scripts and my python proficiency varied a lot between the first and last script. Notably I think some tend to have a dumly large loop in the init method. I outlined ideas for that baseclass in the readme TODO section btw.
If you are interested in contributing let’s move our chat to the issue section as I saw other people interested but scattered around other places of the internet
I see, I thought all such refactoring had already been done and there were no plans for future development. As you say packaging would be better to do after those are done.
For now I’m busy too so I can’t do it, but in the future such packaging will be technically easier. (I’m thinking of developing tools or something for packaging.) I will look into it next time.