Prove one complete local loop:
choose Open Deck directory -> import -> review -> schedule -> reload -> resume
- Parse
deck.yaml,notes/*.yaml, and local media from a selected directory. - Validate and store each note file and media file incrementally in Dexie.
- Show import progress from Dexie through React live queries.
- Accept sanitized HTML strings for
prompt_response,cloze, andocclusion. - Read the deck list and review queue from Dexie.
- Grade reviews through the Anki FSRS SDK and save the updated state.
- Verify that imported data and scheduling state survive a browser restart.
Format documents:
OPEN-DECK_MVP_FORMAT.mdis the strict MVP/v1 schema. Every defined field is required.OPEN-DECK_FORMAT.mdpreserves the full post-MVP format.
Deferred until this loop works: content blocks and inline runs, ZIP and URL imports, authoring, settings, search, statistics, optimization, PWA packaging, accounts, servers, and sync.
Inza is currently a local deck-format and app-prototype workspace for a modern Anki alternative.
The stuff/ directory contains the Anki .apkg parser and deck conversion
research.
Current split:
stuff/index.tsis the CLI entry point.stuff/parse_anki.tsis library code.
Keep that boundary intact. parse_anki.ts should stay import-safe and must not
perform CLI work as a side effect.
Use Aube through mise for dependency and script management:
aube install
aube add <package>
aube remove <package>
aube run <script>Do not use npm, pnpm, Yarn, or Bun to change dependencies or the lockfile. Use Bun only to run the parser and its tests directly.
- Run package scripts with Aube from the repository root.
- Run parser entry points and tests directly with Bun.
- Add dependencies only when they clearly remove more complexity than they add.
- Preserve support for
collection.anki2,collection.anki21, andcollection.anki21b. - Preserve media manifest support for JSON and zstd/protobuf-like formats.
- Preserve filename-safe media extraction.
Before editing parser logic, identify the affected input format, legacy versus modern schema impact, media manifest impact, template rendering impact, and output JSON compatibility impact.
aube run build
aube run lint
aube run format:check
bun test stuffFor CLI-affecting parser changes, smoke test with a local .apkg fixture:
bun stuff/index.ts stuff/Kaishi-1.5k-v2.4.apkg stuff/tmp_outLarge .apkg fixtures are local-only and ignored by Git.
The parser writes:
meta.jsonnotes.jsoncards.jsonnotetypes.jsonmedia.jsonmedia/