Mateusz Hibner

Mateusz Hibner

AI CSV Importer — bilingual card creation without leaving Anki.

AI CSV Importer for Anki

OpenAI · Google Cloud TTS · Stability AI · Unsplash

TL;DR

AI CSV Importer is a small Anki add-on that transforms dull spreadsheets into bilingual flashcards with stories, pronunciations, and imagery. Instead of juggling scripts outside of Anki, everything lives in the Tools menu: drop in a CSV, skim the preview, and the importer does the heavy lifting while you keep full control over every note. GitHub repo.

AI CSV Importer menu entries inside Anki
Tools menu entries keep the importer and its settings one click away.

Why I built it

I spend a lot of time in Anki practicing Polish ↔ German. The problem: when vocabulary comes from class handouts or spreadsheets, entering each card by hand kills momentum. Scripts outside of Anki were brittle and forced me to leave review mode. I wanted a workflow that stayed native to Anki, understood CSV quirks, and still let me veto anything before it landed in my decks.

Experience goals

  • Make the importer feel like a natural Anki feature, not a one-off hack.
  • Offer rich outputs (translations, examples, audio, imagery) without overwhelming the user.
  • Keep advanced configuration shareable so study groups can sync presets.

Flow inside Anki

  1. Choose AI CSV Import… from the Tools menu and load a CSV with the words you gathered in class.
  2. Confirm how columns map to “word” and “context,” then watch the live preview fill in translations, example sentences, and pronunciations.
  3. Let the add-on spin up audio clips (OpenAI TTS or Google Cloud), fetch imagery (Stability or Unsplash), and drop the media directly into Anki’s collection folder.
  4. Review the success report—failed rows can be re-run without duplicating existing notes.

What happens under the hood

The add-on maintains its own AI Foreign Language note type with slots for audio, imagery, and article-aware fields. It quietly creates or updates the model as needed, writes media to Anki’s managed folder, and respects duplicate checking so decks stay clean. Provider choices (OpenAI, Google Cloud TTS, Stability, Unsplash) are abstracted behind simple dropdowns, which means you can switch voices or imagery styles without editing code.

Impact

  • Cut my own vocab entry time by ~70%—most sessions now involve curating outputs rather than typing.
  • Shared config files allow classmates to import the same CSV with identical settings, keeping joint decks consistent.
  • Integrated Unsplash attribution + download tracking keeps the imagery workflow compliant out of the box.

Stack & responsibilities

I handled everything from UI to service integrations: Python add-on scaffold for Anki 2.1.60+, OpenAI prompts for translations/examples, Google Cloud TTS fallback, Stability/Unsplash image fetchers, and a minimal settings dialog that mirrors config.json. Even media housekeeping (naming, deduping, retries) is automated so editors only deal with the cards themselves.