Gnosis (γνῶσις), pronounced “noh-sis”, meaning knowledge in Greek, is a Spaced Repetition System 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

Gnosis (γνῶσις), pronounced “noh-sis”, meaning knowledge in Greek, is a spaced repetition system implementation for note taking and self testing. Notes are organized in a Question/Answer/Explanation format and reviewed at spaced intervals, determined by the success or failure to recall the answer.

The goal of Gnosis is to enhance memory retention through active recall. To achieve optimal results, users review gnosis notes by writing out the answers.

Screenshots

Basic note review

gnosis basic note

Basic note answer evaluation

gnosis basic review answer

Cloze note type review

fill-in-the-blank sentences, mutli-cloze notes are supported as well. gnosis cloze note type

Cloze note answer evaluation

gnosis post review

Installation

MELPA Gnosis is available via MELPA & GNU Guix

Example using use-package

(use-package gnosis
    :ensure t
    :init (define-prefix-command 'my/gnosis-map)
    :config
    (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)))

After installing gnosis, it’s recommended to try out the demo by running M-x gnosis-demo

Note types

Gnosis includes the following note types:

  • MCQ: Multiple Choice Questions
  • Cloze: fill-in-the-blank sentences
  • MC-Cloze: fill-in-the-blank sentences with multiple choice
  • 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