Revu supports local import and export workflows so study material can move in and out of the app without any cloud dependency.
Supported sources:
- Anki profile folders
.apkgexports.colpkgexports
The importer preserves as much local data as possible, including:
- deck hierarchy
- card content
- tags
- scheduling state
- suspended state
- referenced media
Re-importing uses stable identifiers where available so repeated imports update existing content instead of duplicating it.
Revu’s native JSON backup format is the highest-fidelity portable format.
Document header:
{
"schema": "revu.flashcards",
"version": 4
}Current expectations:
schemamust berevu.flashcards- supported versions are
1...4 - documents include
exportedAtand adecksarray
Decks can include:
idparentIdnamenotedueDateisArchivedcards
Cards can include:
idkindfrontbackclozeSourcechoicescorrectChoiceIndextagsmediacreatedAtupdatedAt
Tabular imports are intended for spreadsheets and generated content.
Required fields:
deck- card content appropriate for the chosen kind
Common optional fields:
kindfrontorpromptbackoranswerclozechoicescorrecttagsidcreatedAtupdatedAtdueDatearchived
Notes:
- the importer auto-detects comma vs tab delimiters
- multiple-choice
choicescan be separated by|,;, or newlines correctcan be a 1-based index or the matching answer text- nested deck paths use
::
Markdown block imports are designed for hand-authored text and LLM-friendly generation.
Rules:
- blocks are separated by a line containing
--- - every block must include
deck: kinddefaults tobasic- multiline values are indented on following lines
- nested deck paths use
::
Minimal example:
deck: Biology::Cells
kind: basic
front: What is the powerhouse of the cell?
back: Mitochondria
---
deck: Biology::Cells
kind: cloze
cloze: ATP is produced in the {{c1::mitochondria}}.
All import formats normalize into the same internal document model before writing to storage.
Key rules:
- decks and cards are matched by stable IDs when present
- if an existing card has a newer
updatedAt, the incoming card is skipped - if the incoming card is newer, it replaces the stored content
- missing IDs are generated during import
- deck study plans can be rebuilt after import
Revu exports decks as Revu JSON using:
- pretty-printed output
- ISO-8601 dates
- stable deck and card identifiers
- sorted card order by
createdAt
Use JSON export for:
- backups
- moving data between Revu installations
- generating study sets in external tooling
- the JSON schema is intended to be backward-compatible within the supported version window
- imports are local-only and should not require network access
- merge behavior is intentionally conservative to avoid overwriting newer local edits with older source data