Simple, encrypted, text-based journaling GUI app.
Find a file
2025-11-06 16:52:52 +01:00
pyinstaller [MISC] Added information on using pyinstaller to create Windows EXE 2025-11-06 00:07:49 +01:00
src/mnemosyne_journal [MISC] Bump patch version for new release 2025-11-05 17:55:11 +01:00
tests [TEST] Added test suite for the tkinter gui list_available_journal_entries function 2025-10-24 17:43:12 +02:00
.gitignore [MISC] Updated gitignore file to exclude windows icon 2025-11-06 00:07:23 +01:00
.python-version Initializing project 2025-10-17 17:28:39 +02:00
LICENSE.md [BUGS] Add license information 2025-10-17 18:40:01 +02:00
pyproject.toml [MISC] Updated PyPI classifier to update proejct development 2025-11-06 16:52:52 +01:00
README.md [DOCS] Improved readme usability 2025-10-22 14:44:22 +02:00

Static Badge Static Badge

Mnemosyne Journaling

A simple encrypted journaling application. Named after the ancient Greek goddess of memories.

Usage

This app exposes a command line utility at siru-mnemosyne. Use siru-mnemosyne --help to get more information about available command arguments. Or simply run siru-mnemosyne to use the app in an interactive manner.

As for the command name, it is rather long, but this avoids having namespace issues with other apps as it is using a preexisting name. It is always possible to alias this to something quicker to type on the target system. For Windows look into the doskey command, and for Unix/Linux/MacOS look into the alias command.

Encryption

The user entered password is hashed using the Argon2 hashing algorithm (2015 Password Hashing Competition Winner and current recomendation (last checked 2025-10-22)). The hashing parameters used are 64MiB or RAM, 3 iterations, and a parralelism of 4.

The actual encryption is done using aes256 bit, with a 15 bit nonce. The aes mode used is OCB (offset codebook) which include both encryption and authentication (using a MAC tag) of the encrypted jouranl entry.

Storage

The journal entries are stored in the user home folder under a .mnemosyne/entries subdirectory. These are plain text files containing the various encrypted pieces of information. This allows for portability with other software and prevents so called "lock-in," as all the information needed for decryption (apart from the password) is stored directly with each journal entry.

Documentation

See full code documentation at the wiki section of the repository. This is located at wiki.

Lastly

To follow in the footsteps of one of my professors, if you actually read this far, please send me a simple picture of a cute otter, and I will be pleasantly surprised that people would actually read all of this.