DEV Community

xinran hou
xinran hou

Posted on

I built a spaced-repetition review plugin for Zotero

I use Zotero to manage research papers, textbook notes, and a growing "wrong-answer book" for exam prep. The one thing it never did for me was remind me to actually review the items I'd flagged. So I wrote a small plugin.

What it does:

  • Scheduled reminders — by default every 7 days at 09:00, configurable (interval, time, check frequency).
  • Due-item reminders — items whose Next Review Date has passed show up in a reminder.
  • One-click date shortcuts — mark Completed / Corrected / End dates as today, or set Next Review Date to today + N days.
  • Batch operations — apply any of the above to all selected items at once.
  • Preferences pane — built into Zotero's settings.

Design choices I care about:

  • All dates live in the item's Extra field as plain key: value lines. No separate database, no hidden state — the data is readable, editable, syncable, and survives export.
  • Reproducible buildpython3 build.py produces a byte-identical .xpi every time (fixed timestamps, deterministic zip).
  • Timer lifecycle — the reminder timer is owned by the plugin, not by whichever window loaded first, so multi-window Zotero doesn't silently kill your reminders.

Works on Zotero 7/8/9. MIT licensed.

Install: download the .xpi from the release page, then Tools → Plugins → ⚙️ → Install Plugin From File.

Repo: https://github.com/18126295767-cell/zotero-review-reminder

Happy to take feedback — this is v0.1.0, and I'd especially like input on whether the Extra-field approach feels right vs. a dedicated item field.

Top comments (0)