jrnl is a simple journal application for the command line.

You can use it to easily create, search, and view journal entries. Journals are stored as human-readable plain text, and can also be encrypted using AES encryption.

jrnl has most of the features you need, and few of the ones you don't.

Plain Text

jrnl stores each journal in plain text. You can store jrnl files anywhere, including in shared folders to keep them synchronized between devices. Journal files are compact (thousands of entries take up less than 1 MiB) and can be read by almost any electronic device, now and for the foreseeable future.


To make it easier to find entries later, jrnl includes support for inline tags (the default tag symbol is @). You can find and filter entries by using tags along with other search criteria.

Support for Multiple Journals

jrnl includes support for the creation of multiple journals, each of which can be stored as a single file or as a set of files. Entries are automatically timestamped in a human-readable format that makes it easy to view multiple entries at a time. jrnl can easily find the entries you want so that you can read them or edit them.

Support for External Editors

jrnl plays nicely with your favorite text editor. You may prefer to write journal entries in an editor. Or you may want to make changes that require a more comprehensive application. jrnl can filter specific entries and pass them to the external editor of your choice.


jrnl includes support for AES encryption. See the encryption page for more information.

Import and Export

jrnl makes it easy to import entries from other sources. Existing entries can be exported in a variety of formats.

Multi-Platform Support

jrnl is compatible with most operating systems. You can download it using one of a variety of package managers, or you can build from source.


jrnl is written in Python and maintained by a friendly community of open-source software enthusiasts.