keeps an anki deck in sync with a vocab.csv that lives in a git repo. pulls the repo, rebuilds the deck when the csv changes, imports it into anki through ankiconnect, then kicks off an ankiweb sync.

it only rebuilds when the csv hash or the calendar day changes, so running it every 30 minutes on a timer is basically free. if anki is closed or the ankiconnect addon is missing it just logs and exits, and catches up on the next run.

you need anki with the ankiconnect addon installed, plus your own build_deck.py that takes the csv path and an output apkg path and writes the deck. genanki is the easy way to do that part. fill in the config block at the top, then point cron or launchd at the script.