Skip to content

Request: Support for org-srs flashcard format (including review history) #118

@CyberSyntax

Description

@CyberSyntax

Description

Hello, and thank you for your great work on this project!
I’ve been using org-anki with AnkiConnect and it’s been very helpful for syncing my Org-mode notes with Anki.

I would like to kindly request a feature: support for the org-srs flashcard format. org-srs has its own way of representing flashcards and review metadata directly in Org files, and it would be amazing if org-anki could understand this format and sync it to Anki.

What is org-srs format?

org-srs stores SRS items using :SRSITEMS: tables attached to each entry. Each table contains:
• Review history: timestamps, ratings, stability, difficulty, and state for each review.
• Card content: front and back for Basic cards, or cloze deletions for Cloze cards.
• Multiple cards per entry using #+NAME: identifiers with suffixes like ::card::front, ::cloze::id, etc.

Here are concrete examples:

*** Meaning of "EMACS"
:PROPERTIES:
:ID: 3f20ee00-3428-45d3-8789-7b87e5c12b26
:END:
:SRSITEMS:
#+NAME: srsitem:3f20ee00-3428-45d3-8789-7b87e5c12b26
| ! | timestamp | rating | stability | difficulty | state |
|---+--------------------+-------+----------------------+-------------------+----------|
| | 2024-12-16T15:25:25Z | | 0.0 | 0.0 | :new |
| | 2025-08-27T06:36:58Z | :again | 0.212 | 6.4133 | :learning |
| | 2025-08-27T06:37:00Z | :good | 0.24668918777567272 | 6.4078867 | :learning |
| | 2025-08-27T06:37:00Z | :again | 0.09603383636195932 | 8.810296784660439 | :learning |
| | 2025-08-27T06:37:02Z | :again | 0.039779415894013286 | 9.59995264309975 | :learning |
| | 2025-08-27T06:37:03Z | :good | 0.051675898051234556 | 9.591352690456649 | :learning |
| * | 2025-08-27T06:59:58Z | | | | |
:END:
**** Front
What does "EMACS" stand for?
**** Back
Editing MACroS

*** What does "EMACS" stand for?
:PROPERTIES:
:ID: 76b64d1a-6c24-4de2-8ec3-a5e5cf4df0a5
:END:
:SRSITEMS:
#+NAME: srsitem:76b64d1a-6c24-4de2-8ec3-a5e5cf4df0a5
| ! | timestamp | rating | stability | difficulty | state |
|---+--------------------+-------+---------------------+-------------------+----------|
| | 2025-08-27T06:37:53Z | | 0.0 | 0.0 | :new |
| | 2025-08-27T06:38:02Z | :again | 0.212 | 6.4133 | :learning |
| | 2025-08-27T06:38:03Z | :again | 0.08335671711031603 | 8.812076099559999 | :learning |
| | 2025-08-27T06:38:04Z | :good | 0.1031406500778523 | 8.804264023460439 | :learning |
| | 2025-08-27T06:38:05Z | :good | 0.12584423732556518 | 8.796459759436978 | :review |
| | 2025-08-27T06:38:05Z | :good | 0.15154843418368225 | 8.788663299677541 | :review |
| | 2025-08-27T06:38:06Z | :good | 0.18028447174094772 | 8.780874636377863 | :review |
| | 2025-08-27T06:38:07Z | :good | 0.2120329803720118 | 8.773093761741485 | :review |
| * | 2025-08-28T06:38:07Z | | | | |
:END:
Editing MACroS

There are also reversible and cloze examples with similar SRSITEMS tables.

What would support entail?
• Parse :SRSITEMS: data to extract card fronts/backs/clozes and associated review history.
• Map these to Anki Basic / Cloze note types as org-anki already does for regular entries.
• When syncing to Anki via AnkiConnect:
• Create/update notes as usual.
• Optionally insert past review history into Anki’s revlog table with usn = -1 so that review data syncs correctly across devices.

Why is this useful?
• Many org-srs users already have rich review histories inside their Org files.
• Being able to sync these items to Anki would allow long-term spaced repetition using Anki’s mobile/web apps while preserving past scheduling data.
• It would make org-anki even more versatile, integrating with another popular Org-mode SRS ecosystem.

Possible implementation ideas (for discussion)
• Extend org-anki’s parser to detect :SRSITEMS: and map to card fields.
• Add an option to export review log entries to Anki (usn = −1) for sync; skip if user doesn’t need it.
• Start with Basic/Cloze; reversible cards could be mapped as two Basic cards.

If this aligns with the goals of org-anki, it would be incredibly helpful for those using org-srs and Anki together.

Thank you so much for considering this request!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions