jrnl
Collect your thoughts and notes without leaving the command line.
A command-line journaling tool that saves dated entries as plain text files, with built-in search, optional AES encryption, and natural-language date input like "yesterday" or "last monday".
jrnl is a command-line journaling tool that stores your entries as plain text files. Instead of opening an app or a website, you type your entry directly in the terminal and it is saved with a timestamp automatically. You can write an entry in one line, or launch your preferred text editor for longer entries. Natural-language timestamps like "yesterday:" or "last monday:" are recognized, so you do not have to remember exact date formats.
Journal files are stored in a format any text editor can open, which means your notes are not locked inside a proprietary database. For entries that need to stay private, jrnl supports optional encryption using AES, a widely trusted encryption standard. Encrypted journals require a password to open.
Searching through past entries is built in. You can filter by date range, by tags (words starting with @ or # depending on your configuration), or search for specific text. This makes it practical for finding something you wrote months ago without scrolling through files manually.
The tool is available on Mac via Homebrew, on Linux, and on Windows. It is written in Python and can also be installed via pip. The project is actively maintained and has a full documentation site at jrnl.sh. It is GPL-3.0 licensed.
Where it fits
- Keep a daily journal from the terminal without opening a browser or app, with entries saved as searchable plain text.
- Write private encrypted journal entries that require a password to open.
- Search through months of past entries by date range, tag, or keyword from the command line.