Command Line Reference

Synopsis

usage: jrnl [--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_KEY CONFIG_VALUE]
            [--config-file CONFIG_FILE_PATH]
            [[...]]

Standalone Commands

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

--help

Show a help message.

--version

Print version and license information.

--list

List the config file location, all configured journals, and their locations.

---encrypt

Encrypt a journal. See encryption for more information.

--decrypt

Decrypt a journal. See encryption for more information.

--import

Import entries from another journal. If any entries have the exact same content and timestamp, they will be deduplicated.

Optional parameters:

--file FILENAME

Specify a file to import. If not provided, jrnl will use STDIN as the data source.

--format TYPE

Specify the format of the file that is being imported. Defaults to the same data storage method that jrnl uses. See formats for more information.

Writing new entries

See Basic Usage.

Searching

To find entries from your journal, use any combination of the below filters. Only entries that match all the filters will be displayed.

When specifying dates, you can use the same kinds of dates you use for new entries, such as yesterday, today, Tuesday, or 2021-08-01.

Search Argument Description
-on DATE Show entries on this date
-today-in-history 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)
-and Show only entries that match all conditions, like saying "x AND y" (default: OR)
-starred Show only starred entries (marked with *)
-n [NUMBER] 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.

--edit

Opens the selected entries in your configured editor. It will fail if the editor key is not set in your config file.

Once you begin editing, you can add multiple entries and delete entries by modifying the text in your editor. When your editor closes, jrnl reads the temporary file you were editing and makes the changes to your journal.

--delete

Interactively deletes selected entries. You'll be asked to confirm deletion of each entry.

--change-time DATE

Interactively changes the time of the selected entries to the date specified, or to right now if no date is specified. You'll be asked to confirm each entry, unless you are using this with --edit on a single entry.

--format TYPE

Display selected entries in an alternate format. See formats.

Optional parameters

--file FILENAME

Write output to file instead of STDOUT. In most shells, the same effect can be achieved using >.

--tags

Alias for '--format tags'. Returns a list of all tags and the number of times they occur within the searched entries. If there are no tags found, jrnl will output a message saying so.

--short

Only shows the date and titles of the searched entries.

Configuration arguments

--config-override CONFIG_KEY CONFIG_VALUE

Override configured key-value pair with CONFIG_KV_PAIR for this command invocation only. To access config keys that aren't at the top level, separate the keys with a dot, such as colors.title to access the title key within the colors key. Read advanced usage for examples.

--config-file CONFIG_FILE_PATH

Use the config file at CONFIG_FILE_PATH for this command invocation only. Read advanced usage for examples.

Other Arguments

--debug

Prints information useful for troubleshooting while jrnl executes.

--diagnostic

Prints diagnostic information useful for reporting issues.