GNU ELPA - gnosis

gnosis Atom Feed

Description
Knowledge System
Latest
gnosis-0.10.6.tar (.sig), 2026-May-08, 570 KiB
Maintainer
Thanos Apollo <public@thanosapollo.org>
Website
https://codeberg.org/thanosapollo/emacs-gnosis
Browse 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 as an #+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 five question types: basic, double, MCQ, cloze, and mc-cloze.

1.4. 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.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.4.tar.lz2025-Aug-0137.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.7.tar.lz2024-Nov-0740.6 KiB
gnosis-0.4.2.tar.lz2024-Sep-0540.5 KiB
gnosis-0.4.1.tar.lz2024-Aug-1939.1 KiB

News

1. 0.10.6

  • Dashboard sub-views use dedicated major modes instead of minor modes.

2. 0.10.5

2.1. Performance

  • Defer link-issues computation to idle timer for faster dashboard load.
  • Eliminate redundant database query per thema during review sessions.

2.2. Other

  • Dashboard popup menus show item counts in the modeline.
  • Improved error reporting in database migrations.

3. 0.10.3

3.1. Bug fixes

  • Fix gnosis-table-exists-p failing to query sqlite_master.
  • Clean up orphaned node-tag and node-links rows on file deletion.

4. 0.10.2

4.1. Performance

  • Eliminate redundant GPG decryption on save for .org.gpg files.
  • Git operations (add, commit, push) are now fully async.

4.2. Other

  • gnosis-journal-todo-keywords defaults to ("TODO") instead of inheriting org-todo-keywords.

5. 0.10.1

5.1. Algorithm

  • Cap post-failure interval at 7 days to prevent overly lenient reschedules for mature cards.

5.2. Bug fixes

  • Fix gnosis-import-db initializing review state with wrong values, causing errors on first review of imported themata.

5.3. Other

  • Demo collection shipped as .gnosis instead of org file.

6. 0.10.0

6.1. Breaking changes

  • Date storage migrated to integers: review dates are now stored as YYYYMMDD integers instead of Lisp lists. Migration v7 converts existing data automatically.
  • Export/import rewritten: export now produces a .gnosis SQLite database. Import shows a diff buffer before applying.
    • Old org-file exports are no longer supported.

6.2. New features

  • Anki GUID-based duplicate detection: re-importing the same deck skips already-imported notes (migration v8).
  • Review progress header: header-line shows reviewed/total as a live counter.
  • Import diff buffer: gnosis-import-db shows NEW/CHANGED entries with detail view on RET before applying.
  • Anki import improvements: template-aware field resolution, NFC-normalized tags, system tag stripping (marked, leech), git commit after import.

6.3. Performance

  • Due/overdue queries use integer comparison in SQL instead of Elisp filtering.
  • New indexes on review_log, thema_tag, thema_links, node_links, and activity_log.
  • N+1 queries eliminated in review session and Anki model parsing.

6.4. Bug fixes

  • Fix proto phase failures computing amnesia-based interval instead of resetting to 0.
  • Fix bulk-link matching to be case-insensitive.
  • Fix duplicate node-link insertion for files.
  • Fix overdue exclusion: unreviewed themata (n=0) no longer counted as overdue.

7. 0.9.0

7.1. Breaking changes

  • Dropped emacsql dependency: gnosis now uses Emacs's built-in sqlite module (requires Emacs 29+). The new gnosis-sqlite backend handles all database access.
  • Unified database: org-gnosis has been merged into gnosis. A single gnosis.db stores both themata and nodes. Existing org-gnosis data is migrated automatically.
  • Decks removed: the deck abstraction is gone. Existing deck names are automatically converted into tags during the v6 migration, so no data is lost. Export and import are now thema-centric with tag filtering.

7.2. New features

  • Anki import: import Anki decks or user collections directly with gnosis-anki-import.
  • Tag filtering: gnosis-tags-filter-prompt supports +tag -tag syntax for include/exclude filtering. Used in export and gnosis-collect-thema-ids.
  • Day start hour: gnosis-algorithm-day-start-hour (default 3) lets you define when a new review day begins.
  • Tag bulk operations: rename, regex bulk rename (R), merge case duplicates (C), bulk delete, and suspend/unsuspend from the dashboard tags view. Tag renames are merge-safe (handles UNIQUE conflicts when target tag already exists).

… …