CSV to Canvas Quiz
I vibe coded an app to convert text / CSV files into importable Canvas quiz item banks
I’m preparing to teach a new course this fall. I’m going to start most classes with a 5-minute low-stakes quiz. This is my first time using Canvas. Creating item banks for quizzes is an exercise in clicking through far too many dialogs and confirmations in a clunky and inefficient web interface.
I used Claude Fable to vibe code a little tool to take a structured text file and turn it into a QTI zip file you can upload into Canvas.1 All data stays on your computer. Everything happens in the browser. No AI involved.
Web tool: https://stephenturner.github.io/csv2canvas/
Source code (MIT): https://github.com/stephenturner/csv2canvas
You create a CSV with your questions, answers, and correct answer, and drop it into your browser. If the format is correct, it’ll preview what the quiz questions and answers look like. The page provides example CSV files to use.
Then you download the QTI zip file, head over to Canvas, and import the questions.
Everything happens in the browser, and your data never leaves your computer. The page provides example CSV files to use. But, if you have questions and an answer key in a word doc, the page also provides a button you can click that’ll copy a detailed prompt to your clipboard that’ll let you use your LLM of choice (local or frontier, doesn’t matter), provide your questions/answers, and it’ll create the spreadsheet for you to upload into the tool. YMMV on this one, but I’ve found it to be pretty good.
The fine folks who pay my Claude bills told me this cost about $25 in API credits. I ended up taking the code to GPT-5.6 Sol in Codex to do some UI polishing. So call it $30. Expensive for ~3 requests and responses. But dirt cheap considering how many hours of my (decidedly not cheap) time this will save.
Kansas State has a web utility to do this, but I found it not very well documented, couldn’t find source code, and couldn’t modify it to my needs. Interestingly when I asked Fable to make this tool for me, it found K-State’s tool, and created files, uploaded them to the tool, downloaded those files to inspect and reverse engineer what it was doing.




