ELPA Logo GNU ELPA: gnosis

gnosis Atom Feed

Description
Knowledge System
Latest
gnosis.tar (.sig), 2026-Sep-15, 1.09 MiB
Maintainer
Other versions:
development version
Website
https://git.thanosapollo.org/emacs-gnosis
ELPA's Repository
CGit or Gitweb
All Dependencies
compat (.tar)
keymap-popup (.tar)
Badge
Manual
gnosis

To install this package from Emacs, use package-install or list-packages.

Full description

1. Gnosis

Gnosis is a personal knowledge management and spaced repetition system for Emacs. It integrates two complementary subsystems in a single package: a Zettelkasten-style note system called nodes, and a flashcard-based self-testing system built around themata. Both subsystems share a single SQLite database, and their contents are linked together so that flashcard questions can refer directly to the notes they are drawn from.

1.1. Why Gnosis

Most spaced repetition tools treat flashcards as isolated units. You create a card, review it, and the system schedules the next review. The cards have no relationship to each other or to anything outside the review loop.

Most note-taking tools do the opposite: they help you build a web of interconnected ideas, but they offer no mechanism for systematically testing and reinforcing what you have written.

Gnosis bridges these two approaches. Your notes and your review material live in the same system, linked together. When you write a node about a topic, you can create themata whose questions reference that node. When you review, you can review all the questions linked to a given note, or follow the link graph to review related topics. The goal is a single system where understanding and recall reinforce each other.

1.2. Nodes

Nodes are Zettelkasten-style notes stored as plain org-mode files. Each node is identified by a unique UUID stored in an Org :ID: property. Nodes are indexed in the database so that they can be searched, browsed by tag, and linked together using standard org-mode [[id:UUID]] syntax.

1.3. Themata

A thema (plural themata) is a review card. Each thema consists of a keimenon (the question or prompt), an answer, and an optional parathema (supplementary context shown after the answer). Themata are reviewed using a spaced repetition algorithm that adapts the interval between reviews based on performance.

Themata support basic, double, MCQ, cloze and mc-cloze text questions, image-region and image-occlusion questions, and optional 3D model questions.

For agent-assisted creation or repair, read the thema authoring skill before drafting. It covers source-backed questions, descriptive links, cross-topic reuse, and verified native saves. The skill is agent-neutral; load it explicitly or install its directory using your agent's skill mechanism.

1.4. Installation

Install from GNU ELPA with M-x package-refresh-contents, then M-x package-install RET gnosis RET. Emacs installs the declared compat and keymap-popup dependencies. Core Gnosis requires Emacs 29.1 or later with working SQLite support: M-: (sqlite-available-p) should return t. Python and native canvas support are not required.

Open M-x gnosis-dashboard to start, or C-h i g (gnosis) RET for the installed manual. See Installation and Setup for directories and configuration. Existing users: back up the old database, Org files and media before the first database open with upgraded code; see the manual's Database Upgrades and Rollback section for 0.12.0 (schema 10).

1.5. Optional 3D support

Gnosis works without Python or a 3D renderer. Model themata use the optional canvas-3d backend, which is not included in the ELPA package. Install it separately from a matching Gnosis source checkout; keep the whole optional/canvas-3d/ directory, not just its Lisp file.

The backend requires a graphical Emacs with canvas-refresh and the canvas image type (Emacs 32 development builds), Python 3.12–3.14, and a working EGL/OpenGL 3.3 driver. Only Linux EGL is currently verified. Installing Python dependencies does not add canvas support to an older Emacs.

Install uv, then prepare and check the backend:

cd /path/to/gnosis/optional/canvas-3d
uv sync --locked
./preflight.py

Point Gnosis at that directory in your Emacs configuration:

(with-eval-after-load 'gnosis
  (setq gnosis-model-renderer-directory
        "/path/to/gnosis/optional/canvas-3d/"))

The renderer loads only when needed. Opening a model never installs software or downloads dependencies. See the canvas-3d setup guide for preflight options, a standalone test scene, and renderer configuration. Anatomical models are not bundled.

1.6. The Link Between Nodes and Themata

When you write a node about a topic, you can create themata whose keimenon or parathema contains an [[id:NODE-UUID]] link to that node. Gnosis records these relationships so that you can later review all themata associated with a particular node via gnosis-review-topic.

Old versions

gnosis-0.11.0.tar.lz2026-Sep-14 194 KiB
gnosis-0.10.6.tar.lz2026-May-08 100 KiB
gnosis-0.10.5.tar.lz2026-May-05 100 KiB
gnosis-0.10.4.tar.lz2026-Apr-2998.6 KiB
gnosis-0.10.3.tar.lz2026-Apr-0499.3 KiB
gnosis-0.10.2.tar.lz2026-Mar-3199.2 KiB
gnosis-0.10.1.tar.lz2026-Mar-2698.6 KiB
gnosis-0.9.0.tar.lz2026-Mar-1788.9 KiB
gnosis-0.8.0.tar.lz2026-Mar-0475.8 KiB
gnosis-0.7.0.tar.lz2026-Feb-2454.6 KiB
gnosis-0.6.0.tar.lz2026-Jan-2641.1 KiB
gnosis-0.5.8.tar.lz2025-Nov-0840.2 KiB
gnosis-0.5.7.tar.lz2025-Oct-2538.0 KiB
gnosis-0.5.6.tar.lz2025-Oct-1538.1 KiB
gnosis-0.5.5.tar.lz2025-Aug-1337.8 KiB
gnosis-0.5.0.tar.lz2025-Jun-1741.5 KiB
gnosis-0.4.10.tar.lz2024-Dec-1040.8 KiB
gnosis-0.4.8.tar.lz2024-Nov-0840.4 KiB
gnosis-0.4.2.tar.lz2024-Sep-0540.5 KiB
gnosis-0.4.1.tar.lz2024-Aug-1939.1 KiB

News

1. 0.12.0

1.1. Upgrading

  • Upgrade released schema 9 to schema 10 to retain practice encounter evidence. Released 0.10.6 databases still upgrade through schema 9. Existing content, schedules and study history are preserved; missing historical answers are not invented.
  • Back up before the first database open with this version. Downgrading to 0.11.0 requires its matching pre-upgrade database backup, not a schema-10 database.

1.2. Fixes

  • Populate dashboard statistics on first startup without requiring a previous review session to load their implementation.
  • Refuse native thema saves that would discard explanation headings or prose outside fields. Preserve the complete draft and source links, including when the editor is narrowed.
  • Preserve file-level Org IDs and adjacent source/example blocks when inserting the first file tag.
  • Retire study collection and dashboard ownership when their buffers become files. Refresh and retained commands cannot erase successor drafts or reuse retired selections after detachment.
  • Keep dashboard study actions and pending-review Delete, Suspend and Flag actions bound to the database and presentation that produced them, including across prompts.

1.3. Practice and journals

  • Retain accepted practice answers and context, support an explicit unlimited-attempt policy, and recover current practice sessions without changing scheduled-review evidence or FSRS state.
  • Add optional journal templates and free-form capture through gnosis-journal-insert-template and gnosis-journal-capture. Thoughts can be edited before saving; cancellation leaves the journal unchanged.
  • Route journal captures through explicit local heading roles and reject ambiguous destinations rather than choosing an unrelated heading.
  • Improve the bundled demo collection and remove stale ELPA ignore entries.

2. 0.11.0

2.1. Breaking changes and upgrading

  • Replace the previous scheduling algorithm with FSRS-6. Remove the legacy algorithm and per-tag scheduling customization. Desired retention is now a versioned, database-wide setting. Remove gnosis-custom-values and gnosis-history-clear; activity is derived from retained evidence rather than a separately editable daily log.
  • The supported database upgrade is from released 0.10.6 (schema 8) directly to schema 9. Preserve existing due dates and review totals without inventing individual review events or historical FSRS state. Older schemas, separate org-gnosis databases and private development layouts require matching older source or a separately verified conversion.
  • Back up before opening an existing database with 0.11.0. gnosis-backup-db copies the existing database without upgrading it; follow the manual's pre-first-open procedure and keep the matching old source for rollback. Back up Org files and external media separately.
  • Journal entries now default to one journal.org, or journal.org.gpg when gnosis-journal-as-gpg is enabled. Set gnosis-journal-file to nil to retain one file per entry. Existing files are not converted.
  • Saving a journal no longer completes tasks in other Org files. Use gnosis-journal-insert-task and gnosis-journal-complete-task for explicit, confirmed completion through source ID links.

2.2. Scheduling and review

  • Use FSRS-6 with binary Again/Good outcomes and an initial desired retention of 90%. gnosis-scheduler-set-retention changes the target for future accepted reviews without rewriting existing due dates.
  • Retain scheduled review events and their configuration for replay. gnosis-study-history-audit distinguishes migrated totals, scheduled recall, same-day activity, practice exposures and voided grades.
  • Bound failure relearning: a failed thema returns once at the end of

… …