Gnosis (γνῶσις), pronounced “noh-sis”, meaning knowledge in Greek, is a Spaced Repetition System (SRS) for note taking and self testing.

gnosis is still in active development, if you encounter any bugs feel free to send me an email

About

MELPA

Gnosis is a spaced repetition note taking and self testing system, where notes are taken in a Question/Answer/Explanation format & reviewed in spaced intervals.

Gnosis can help you better understand and retain the material by encouraging active engagement. It also provides a clear structure for your notes & review sessions.

Screenshots

Adding a cloze note

gnosis add cloze note pdf-tools & gnosis

MCQ note type review

gnosis mcq note type

Cloze note type review

fill-in-the-blank sentences gnosis cloze note type

Gnosis post review

gnosis post review Screenshot after a wrong answer is given, which is highlighted in red & magenta (purple-like) for the correct one. An explanation is displayed & the date for the next review formatted in YYYY/mm/dd.

Gnosis dashboard

gnosis dashboard

Gnosis edit buffer

gnosis edit buffer Gnosis notes are edited using emacs lisp :)

Installation

Gnosis is available via MELPA

Example using use-package

(use-package gnosis
    :ensure t
    :init (define-prefix-command 'my/gnosis-map)
    :config
    (setf gnosis-vc-auto-push t)
    (gnosis-modeline-mode)
    :bind (("C-c g" . my/gnosis-map)
  	       :map my/gnosis-map
	       ("r" . 'gnosis-review)
	       ("a" . 'gnosis-add-note)
	       ("C-d" . 'gnosis-dashboard)
	       ("d" . 'gnosis-add-deck)))

Note types

Gnosis includes the following note types:

  • MCQ: Multiple Choice Questions
  • Cloze: fill-in-the-blank sentences
  • Basic: Question-Answer-Explanation
  • Double: Creates 2 basic notes, second one is generated with the question & answer switched
  • y-or-n: Question with y/n answer (yes or no)

Editing notes

Currently there are 2 ways for editing notes:

  • You can edit a note after review by pressing e
  • Open gnosis-dashboard with M-x gnosis-dashboard, find the note you want to edit and press e

Sync between devices

Gnosis uses git to maintain data integrity and can be used facilitate synchronization of it’s database across devices.

You can set a git remote manually:

cd ~/.emacs.d/gnosis # default location for gnosis
git init # After completing your first review session, a git repo should have been initialized automatically.
git remote add origin <remote_url>
git push --set-upstream origin master

You can interactively use gnosis-vc-push & gnosis-vc-pull. As the name suggests, they rely on vc to work properly.

Depending on your setup, vc might require an external package for the ssh passphrase dialog, such as x11-ssh-askpass.

To automatically push changes after a review session, add this to your configuration:

(setf gnosis-vc-auto-push t)
(gnosis-vc-pull) ;; Run vc-pull for gnosis on startup