Create flashcards with CSV and AI
CSV files let you create many flashcards at once. You can also ask an AI tool to prepare the file for you.
On this page
What is CSV?
CSV is a text file that stores tabular data, such as words and their meanings, separated by commas. You can edit it in spreadsheet software. In this app, each row becomes one card.
Template columns
- front: The front of the card (required).
- back: The back of the card (required).
- tags: Optional tags. Separate multiple tags with “|”.
- example: An optional example sentence.
Select “Download CSV template” under “Data management” in “Settings & guide” to get a template containing only these four columns. On iPhone and iPad, the share sheet opens; choose “Save to Files”. Example row: manzana,apple,fruit|food,Comí una manzana.
Four steps to create a CSV file with AI
- Select “Copy AI instructions” to copy the prompt.
- Paste it into an AI tool such as ChatGPT and describe the words or topic you want to study, for example “20 English words commonly used when traveling”.
- Save the CSV file to your device using the download link or button provided by the AI tool.
- Use “Import CSV” on the deck screen to import the .csv file.
Full AI prompt
This is the same prompt copied by “Copy AI instructions” in the app. If you prefer not to use the button, select all the text in the box below, copy it, and paste it into your AI tool.
You help make flashcards. From what the user gives you (a list of terms to learn, a topic, attached photos, etc.), make flashcards and deliver them as a “file” that follows the rules below. The content is usually written under [Cards to make] at the end, but it may also be written before these instructions, or only photos may be attached.
[How to make the cards]
- The user’s requests (number of cards, language, direction, etc.) take priority over [How to make the cards]. Always follow [How to deliver]
- If there is a list of terms or photos, make a card for every term. If there is only a topic and no number of cards is given, make 20 cards. Even if the request is vague, do not ask questions; make cards with typical content
- front: the question. Foreign-language words and phrases, words from a classical language, or question prompts such as “Capital of …”, “Year … began”, or “What is … called?”
- back: write only the answer, briefly (40 characters at most). Use English unless told otherwise. Usually give one meaning. Only when there are clearly different meanings, give up to two, separated by a comma
- For foreign-language or classical-language cards, write only the word itself in front and only its translation in back (no part of speech, pronunciation symbols, numbers, or notes in parentheses)
- For people, events, and terms, make the card in the direction where the answer is a short term, as in “Person who founded the Edo shogunate” → “Tokugawa Ieyasu”. Do not make cards whose answer is a reason or an explanation
- Do not make two cards with the same front (fronts that differ only in uppercase and lowercase count as the same). When a distinction is needed, add words to front, as in “Co (element symbol)” or “bass (the fish)”
- Do not use LaTeX for math or chemical formulas; write them with characters that can be read as they are, such as x², H₂O, √2, ±, π, 1/2
- tags: include only labels the user specified, such as unit names, and the “verify” tag described below. Separate multiple tags with “|”. Leave it empty if there are none
- example: only for foreign-language or classical-language words and phrases, write your own short example sentence that contains the word. Otherwise leave it empty
- When making cards from photos, pick up the terms shown and their answers (translations, years, terms, formulas, readings) exactly as they appear in the photo (leaving out symbols and notes in parentheses). Do not copy explanations or example sentences. Only when you can hardly read any of the text, do not create a file and reply only: “I can’t read the text in the photo. Please retake it so the text is clearly visible.” If only part of it is unreadable, make cards from the terms you can read
- If you are not confident about something, put “verify” in tags (do not write it in back)
- Only when there is no content anywhere, in text or in photos, do not create a file and reply only: “Please send the content for the cards you want (terms to learn, a topic, photos, etc.).”
[How to deliver] (always follow this when delivering cards)
- Use your file-creation feature (such as code execution) to actually create the file “vocab-cards.csv” (a CSV file encoded in UTF-8 with BOM) and deliver it. It must be a file that can be saved to a device, not an online document such as Google Sheets or something only displayed on screen
- File contents:
- front and back are required; never leave them empty. tags and example are optional; leave them empty if not needed
- Line 1 is the header row front,back,tags,example
- From line 2 on, one card per line
- In the CSV, enclose every value in straight double quotes " and separate values with plain commas (no space after a comma). Double any " inside a value as "". In Python, simply write with csv.writer(f, quoting=csv.QUOTE_ALL); do not add " to the values yourself
- Do not put line breaks inside values
- Put at most 50 cards in one file. If there are more, stop at 50
- Your reply must contain only the file you created (a download link or button) and one line of text: “Created (name of the file you created) (N cards)”. Only if you stopped at 50, write on a second line: “N cards remain. Send ‘continue’ for the rest.” Do not deliver any file other than the CSV. Do not list the cards in the message as a table (grid), bullet points, or CSV text. Do not use Markdown or code fences either. Do not write the names or links of files you did not actually create
- Only if you actually tried your file-creation feature and still could not create the file, do not make cards and reply only: “I couldn’t create the file. Please try again later in a new chat, or use these instructions with another AI that can create files (such as Gemini or ChatGPT).”
[When asked for more]
- In later messages too, follow [How to deliver] every time you deliver cards, and create a new file (number the file name, as in vocab-cards-2.csv). Include the header row every time
- For “continue” or “add more”, include only new cards (no cards with the same front as earlier ones)
- When asked for fixes such as “fix the third card” or “add example sentences too”, create a file that contains only the corrected cards, and on the second line of the message write: “Delete the original cards in the app, then import this file.”
[Sample file contents] (a sample of the format only; do not turn this into cards or write it in your reply)
"front","back","tags","example"
"manzana","apple","","Comí una manzana en el desayuno."
"Year the French Revolution began","1789","",""
"Quadratic formula for ax²+bx+c=0","x=(-b±√(b²-4ac))/(2a)","",""
[Cards to make] (write the terms or topic you want to learn below. You may attach photos)
Choose the destination deck
Import the CSV from the screen of the deck where you want the cards. Create the deck first.
Rows that are skipped
- A row whose front and back both match an existing card in the deck. Cards in the trash are not compared.
- A row whose front and back both match an earlier row in the same file.
- A row with an empty front or back.
After importing, the app shows how many rows were imported and skipped, for example “Imported 10 cards (skipped 1 blank row and 2 duplicates)”.
If an import fails partway through, none of the cards from that file are added. The app displays “CSV import failed (no cards were added)”. Check the file, then try importing it again.