jrnl - Man Page

manual page for jrnl version v2.8.1

Examples (TL;DR)


usage: __main__.py [--debug] [--help] [--version] [--list] [--encrypt]

[--decrypt] [--import] [-on DATE] [-today-in-history] [-month DATE] [-day DATE] [-year DATE] [-from DATE] [-to DATE] [-contains TEXT] [-and] [-starred] [-n [NUMBER]] [-not [TAG]] [--edit] [--delete] [--format TYPE] [--tags] [--short] [--config-override CONFIG_KV_PAIR CONFIG_KV_PAIR] [...]

Collect your thoughts and notes without leaving the command line

Optional Arguments


Print information useful for troubleshooting

Standalone Commands

These commands will exit after they complete. You may only run one at a time.


Show this help message


Print version information


List all configured journals


Encrypt selected journal with a password


Decrypt selected journal and store it in plain text


Import entries from another journal. Optional parameters: --file FILENAME (default: uses stdin) --format [jrnl] (default: jrnl)


To add a new entry into your journal, simply write it on the command line:

jrnl yesterday: I was walking and I found this big log.

The date and the following colon ("yesterday:") are optional. If you leave them out, "now" will be used:

jrnl Then I rolled the log over.

Also, you can mark extra special entries ("star" them) with an asterisk:

jrnl *And underneath was a tiny little stick.

Please note that asterisks might be a special character in your shell, so you might have to escape them. When in doubt about escaping, put quotes around your entire entry:

jrnl "saturday at 2am: *Then I was like 'That log had a child!'"


To find entries from your journal, use any combination of the below filters.

-on DATE

Show entries on this date


Show entries of today over the years

-month DATE

Show entries on this month of any year

-day DATE

Show entries on this day of any month

-year DATE

Show entries of a specific year

-from DATE

Show entries after, or on, this date

-to DATE

Show entries before, or on, this date (alias: -until)

-contains TEXT

Show entries containing specific text (put quotes around text with spaces)


Show only entries that match all conditions, like saying "x AND y" (default: OR)


Show only starred entries (marked with *)


Show a maximum of NUMBER entries (note: '-n 3' and '-3' have the same effect)

-not [TAG]

Exclude entries with this tag

Searching Options

These help you do various tasks with the selected entries from your search. If used on their own (with no search), they will act on your entire journal


Opens the selected entries in your configured editor


Interactively deletes selected entries

--format TYPE

Display selected entries in an alternate format. TYPE can be: boxed, dates, fancy, json, markdown, md, pretty, sample, short, tags, text, txt, xml, or yaml. Optional parameters: --file FILENAME Write output to file instead of stdout


Alias for '--format tags'. Returns a list of all tags and number of occurences


Show only titles or line containing the search tags

Config file override

Apply a one-off override of the config file option


Override configured key-value pair with CONFIG_KV_PAIR for this command invocation only. Examples: - Use a different editor for this jrnl entry, call: jrnl --config-override editor: "nano" - Override color selections jrnl --config-override colors.body blue --configoverride colors.title green

Thank you to all of our contributors! Come see the whole list of code and financial contributors at https://github.com/jrnl-org/jrnl. And special thanks to Bad Lip Reading for the Yoda joke in the Writing section above.


July 2021 jrnl version v2.8.1