jrnl has two modes: composing and viewing. Basically, whenever you don’t supply any arguments that start with a dash or double-dash, you’re in composing mode, meaning you can write your entry on the command line or an editor of your choice.
We intentionally break a convention on command line arguments: all arguments starting with a single dash will filter your journal before viewing it, and can be combined arbitrarily. Arguments with a double dash will control how your journal is displayed or exported and are mutually exclusive (ie. you can only specify one way to display or export your journal at a time).
Composing mode is entered by either starting jrnl without any arguments – which will prompt you to write an entry or launch your editor – or by just writing an entry on the prompt, such as:
jrnl today at 3am: I just met Steve Buscemi in a bar! He looked funny.
You can also import an entry directly from a file:
jrnl < my_entry.txt
Timestamps that work:
To mark an entry as a favourite, simply “star” it:
jrnl last sunday *: Best day of my life.
If you don’t want to add a date (ie. your entry will be dated as now), The following options are equivalent:
Note
Just make sure that the asterisk sign is not surrounded by whitespaces, e.g. jrnl Best day of my life! * will not work (the reason being that the * sign has a special meaning on most shells).
jrnl -n 10
will list you the ten latest entries,
jrnl -from "last year" -until march
everything that happened from the start of last year to the start of last march. To only see your favourite entries, use
jrnl -starred
Keep track of people, projects or locations, by tagging them with an @ in your entries
jrnl Had a wonderful day on the @beach with @Tom and @Anna.
You can filter your journal entries just like this:
jrnl @pinkie @WorldDomination
Will print all entries in which either @pinkie or @WorldDomination occurred.
jrnl -n 5 -and @pineapple @lubricant
the last five entries containing both @pineapple and @lubricant. You can change which symbols you’d like to use for tagging in the configuration.
Note
jrnl @pinkie @WorldDomination will switch to viewing mode because although _no_ command line arguments are given, all the input strings look like tags - jrnl will assume you want to filter by tag.