Configuration File Reference

jrnl stores its information in a YAML configuration file.


Backup your journal and config file before editing. Changes to the config file can have destructive effects on your journal!

Config location

You can find your configuration file location by running: jrnl --list

By default, the configuration file is ~/.config/jrnl/jrnl.yaml. If you have the XDG_CONFIG_HOME variable set, the configuration file will be saved as $XDG_CONFIG_HOME/jrnl/jrnl.yaml.


On Windows, the configuration file is typically found at %USERPROFILE%\.config\jrnl\jrnl.yaml.

Config format

The configuration file is a YAML file and can be edited with a text editor.

Config keys


Describes each journal used by jrnl. Each indented key after this key is the name of a journal.

If a journal key has a value, that value will be interpreted as the path to the journal. Otherwise, the journal needs the additional indented key journal to specify its path.

All keys below can be specified for each journal at the same level as the journal key. If a key conflicts with a top-level key, the journal-specific key will be used instead.


If set, executes this command to launch an external editor for writing and editing your entries. The path to a temporary file is passed after it, and jrnl processes the file once the editor returns control to jrnl.

Some editors require special options to work properly, since they must be blocking processes to work with jrnl. See External Editors for details.


If true, encrypts your journal using AES. Do not change this value for journals that already have data in them.


The path to a text file to use as a template for new entries. Only works when you have the editor field configured.


Symbols to be interpreted as tags.


Although it seems intuitive to use the # character for tags, there's a drawback: on most shells, this is interpreted as a meta-character starting a comment. This means that if you type

jrnl Implemented endless scrolling on the #frontend of our website.

your bash will chop off everything after the # before passing it to jrnl. To avoid this, wrap your input into quotation marks like this:

jrnl "Implemented endless scrolling on the #frontend of our website."

Or use the built-in prompt or an external editor to compose your entries.

default_hour and default_minute

Entries will be created at this time if you supply a date but no specific time (for example, last thursday).


Defines how to format the timestamps as they are stored in your journal. See the python docs for reference.

Do not change this for an existing journal, since that might lead to data loss.


jrnl doesn't support the %z or %Z time zone identifiers.


If true, tags will be highlighted in cyan.


Controls the width of the output. Set to false if you don't want to wrap long lines. Set to auto to let jrnl automatically determine the terminal width.


A dictionary that controls the colors used to display journal entries. It has four subkeys, which are: body, date, tags, and title.

Current valid values are: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, and NONE.

colorama.Fore is used for colorization, and you can find the docs here.

To disable colored output, set the value to NONE.


Specifies formatter to use by default. See formats.


jrnl automatically updates this field to the version that it is running. There is no need to change this field manually.