anki-librarian
anki-optimizer rewrites the content of cards. anki-librarian is its quieter sibling: it keeps the formatting clean, right as I’m making cards.
What it does
It watches for new cards as I create them, runs a set of formatting analyzers over each one, and queues up suggestions for me to approve in batches — so cleanup happens continuously instead of in a dreaded once-a-year sweep.
How it works
It’s a real Anki add-on. The formatting analyzers are pure Python with no dependency on Anki’s internals, so I can test them without Anki even running: code-block highlighting, inline-style cleanup, whitespace normalization, broken-media detection, cloze-syntax validation, and more. Pending suggestions live in a small SQLite queue, and a Qt dialog inside Anki lets me approve them.
Where it is
Early development. The first version does formatting checks only — no content rewrites, no taxonomy work yet. That scope is deliberate: get the watch → lint → queue loop solid before it touches anything meaning-bearing.