Sheets2Anki
Author and maintain Anki decks in Google Sheets, then synchronize them into Anki with a single command.

Overview
Sheets2Anki is an Anki add-on that treats a Google Sheets spreadsheet as the source of truth for your flashcards. You write and organize cards in a familiar spreadsheet β alone or collaboratively β and the add-on keeps the corresponding Anki notes in sync: creating, updating, and removing them as the sheet changes.
It is designed for users who maintain large or shared decks, such as study groups, tutors managing per-student material, and exam-preparation collections that benefit from spreadsheet-style organization, bulk editing, and version control.
Features
- Spreadsheet-driven sync β one-way synchronization from Google Sheets to Anki, with reliable create/update/delete tracking by stable row IDs.
- Collaboration β multiple authors can edit the same sheet; everyone syncs the latest content.
- Multi-student decks β a single sheet can drive separate sub-decks per student or study group via a
STUDENTS column.
- Cloze support β
{{c1::...}} patterns are detected automatically and rendered as cloze cards.
- Reverse cards β optionally generate an Answer β Question card from the same row.
- Hierarchical organization β automatic deck hierarchy and namespaced tags derived from topic, subtopic, concept, importance, exam board, and more.
- AI assistant β optional in-card AI help, follow-up questions, and answer checking via Google Gemini, Anthropic Claude, or OpenAI.
- Rich media β embed images and videos (YouTube/Vimeo) directly in cards.
- Automatic image hosting β images placed in the sheet are uploaded and embedded as
<img> tags automatically.
- Study timer β an optional, unobtrusive per-card timer.
- AnkiWeb integration β trigger an AnkiWeb sync automatically after each deck sync to reach AnkiMobile and AnkiWeb.
Requirements
| Component |
Minimum version |
| Anki |
25.7.5 |
| Qt |
6 (PyQt6 6.9.1) |
| Python |
3.13.5 (bundled with Anki 25.x) |
Sheets2Anki 3.x targets the modern Anki runtime only. Users on older Anki releases should remain on the 2.x line.
Installation
From AnkiWeb (recommended)
- In Anki, open
Tools β Add-ons β Get Add-onsβ¦.
- Enter the Sheets2Anki add-on code (see the AnkiWeb listing).
- Restart Anki. A new
Sheets2Anki entry appears under the Tools menu.
Manual installation
- Download
sheets2anki-standalone.ankiaddon from the latest release.
- In Anki, open
Tools β Add-ons β Install from fileβ¦ and select the downloaded file.
- Restart Anki.
Getting started
1. Copy the template
Start from the official template, which has every supported column pre-configured:
Open the Sheets2Anki template β File β Make a copy.
2. Connect the sheet to Anki
- In Google Sheets, choose
Share β Anyone with the link β Viewer, then copy the link.
- In Anki, press
Ctrl+Shift+A (or Tools β Sheets2Anki β Add New Remote Deck).
- Paste the link and give the deck a name.
3. Sync
Add questions and answers to the sheet, then press Ctrl+Shift+S (or Tools β Sheets2Anki β Synchronize Remote Decks). Your cards appear in Anki, organized and ready to study.
Spreadsheet schema
The template ships with a full set of columns, but only three are required in the header. Each row becomes one note (or several, when reverse cards or multiple students are involved).
Required columns
| Column |
Description |
Example |
ID |
Stable unique identifier used to track each card across syncs. Do not edit or reuse it. |
Q101 |
QUESTION |
Front of the card. |
Capital of France? |
ANSWER |
Back of the card. |
Paris |
Control columns (recommended)
| Column |
Description |
Example |
STUDENTS |
Comma-separated list of students the card belongs to. Drives per-student sub-decks. |
John, Mary |
SYNC |
Set to TRUE to include the row in synchronization. |
TRUE |
Optional columns
| Column |
Description |
IMPORTANCE |
Priority level (used in the deck hierarchy and tags). |
TOPIC / SUBTOPIC / CONCEPT |
Hierarchical categorization, from broad to atomic. |
REVERSE |
Text for an additional Answer β Question card. |
COMPLEMENTARY INFO / DETAILED INFO |
Additional context and extended explanation. |
EXAMPLE 1 / EXAMPLE 2 |
Worked examples. |
MNEMONIC |
Memory aid. |
IMAGE / HTML IMAGE |
Source image cell and the generated <img> markup (see Automatic image handling). |
HTML VIDEO |
Embedded video markup (YouTube/Vimeo). |
BOARDS / LAST YEAR IN EXAM / CAREERS |
Exam metadata used for tagging. |
OTHER TAGS |
Additional free-form tags. |
EXTRA FIELD 1/2/3 |
Free-use fields. |
Columns you do not use can be hidden in Google Sheets without affecting synchronization.
AI assistant
Sheets2Anki can add AI-powered controls to your cards for explanations, follow-up questions, and answer verification.
- Open
Tools β Sheets2Anki β Configure AI Assistance (Ctrl+Shift+H).
- Select a provider β Google Gemini, Anthropic Claude, or OpenAI β and enter your API key. The key is stored locally in the add-on configuration.
- While reviewing, use the AI Help, AI Ask, and AI Checker buttons on the card.
Security note: AI responses are sanitized before display. Optional "mobile support" embeds your API key into the card templates so AnkiMobile and AnkiWeb can call the provider directly β this uploads the key to AnkiWeb and to every synced device. Enable it only if you accept that exposure, and prefer a restricted, rotatable key.
Automatic image handling
Sheets2Anki can upload images from your spreadsheet and embed them in cards, so they display on every device including AnkiMobile.
- Insert an image into a cell in the
IMAGE column (Insert β Image β Image in cell).
- Configure the processor once via
Tools β Sheets2Anki β Configure Image Processor (Ctrl+Shift+P): provide a free ImgBB API key and the URL of a deployed Google Apps Script web app.
- On processing, images are uploaded to ImgBB and the resulting
<img> markup is written to the HTML IMAGE column, then synced like any other field.
Full setup instructions, including deploying the Apps Script, are in scripts/IMAGE_PROCESSOR_README.md.
Organization
Sheets2Anki builds a namespaced tag hierarchy in the Anki browser:
sheets2anki
βββ topics::topic::subtopic::concept hierarchical content tree
βββ concepts::concept flat concept search
βββ importance::level priority level
βββ boards::board exam boards
βββ years::year exam years
βββ careers::career professional areas
βββ other_tags::tag additional tags
Decks are nested to mirror your spreadsheet's structure:
Sheets2Anki
βββ <Remote Deck>
βββ <Student>
βββ <Importance>
βββ <Topic>
βββ <Subtopic>
βββ <Concept>
Keyboard shortcuts
All actions are available under Tools β Sheets2Anki; the most common have shortcuts:
| Shortcut |
Action |
Ctrl+Shift+A |
Add a new remote deck |
Ctrl+Shift+S |
Synchronize remote decks |
Ctrl+Shift+D |
Disconnect a remote deck |
Ctrl+Shift+G |
Configure students globally |
Ctrl+Shift+O |
Configure deck options |
Ctrl+Shift+W |
Configure AnkiWeb sync |
Ctrl+Shift+I |
Configure study timer |
Ctrl+Shift+H |
Configure AI assistance |
Ctrl+Shift+P |
Configure image processor |
Ctrl+Shift+B |
Open the remote-decks backup tool |
Ctrl+Shift+L |
Toggle debug mode / view logs |
Troubleshooting
- Inspect the logs.
Tools β Add-ons β Sheets2Anki β View Files β debug_sheets2anki.log records the most recent sync in detail.
- Back up before changes.
Tools β Sheets2Anki β Remote Decks Backup (Ctrl+Shift+B) saves your connected-deck configuration; you can restore it or re-add a deck cleanly.
- Verify sheet access. A failed download usually means the sheet is not shared as "Anyone with the link β Viewer".
If a problem persists, please open an issue at github.com/igorrflorentino/sheets2anki/issues and attach the relevant portion of the debug log.
Contributing
Issues and pull requests are welcome. Development setup, the test suite, and the project architecture are documented in CLAUDE.md and the build scripts under scripts/.
License
Released under the MIT License.