Repository navigation
leitner 0.1.0
First release.
leitner reviews markdown flashcards from the terminal. Every ## heading in a
file is one card — the heading is the question, everything up to the next ##
is the answer, and a *** splits a longer front from the back. Scheduling
follows the Leitner system: cards move forward when you get them right and back
when you don't.
It reads the deck format, Flashcard Markdown
1.0, as a consumer. It parses anything the format calls valid and never
refuses a file over one bad card. Nothing in it writes to your notes — review
state lives in ~/.local/share/leitner/review-state.json, never in the
markdown. The one exception is pressing e during a session, which hands the
file to $EDITOR.
Install
Not on npm yet, so install from the tag:
git clone --branch v0.1.0 https://github.com/shbernal/leitner
cd leitner
pnpm install
pnpm buildNeeds Node 24 or newer. The binary is dist/index.js; bin/leitner is the
development launcher.
Commands
leitner list [dir] # decks and card counts
leitner stats [dir] # totals, due/new/suspended, parse warnings
leitner review [dir] # interactive review session
leitner export [dir] # review state as a portable JSON bundle
leitner import <file> # merge a bundle into local state
dir defaults to sourceDir from ~/.config/leitner/config.json, falling back
to ~/notes/flashcards.
Documentation
README.md— the manual: flags, review keys, image previewsdocs/format.md— conformance class, and the card-identity scheme that decides when an edit costs you review historydocs/scheduling.md— grade transitions, queue order, the state file, config keys