# Configuration File Reference

`jrnl` stores its information in a YAML configuration file.

Note

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`.

Note

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

### journals

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.

### editor

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.

### encrypt

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

### template

The path to a text file to use as a template for new entries. Only works when you have the `editor` field configured. If you use a template, the editor's temporary files will have the same extension as the template.

### tagsymbols

Symbols to be interpreted as tags.

Note

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`).

### timeformat

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.

Note

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

### highlight

If `true`, tags will be highlighted in cyan.

### linewrap

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.

### colors

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`.

### display_format

Specifies formatter to use by default. See formats.

### version

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

GitHub « Previous Next »