jrnl cli app

Want to log your thoughts and memories without leaving the command line?

Well, you can do so using jrnl. As its vowel-less moniker ably conveys, it is journaling app, albeit one with a big difference: it’s designed to be used from a terminal, not a web browser or graphical interface

A reader recently mailed in to tell me about — thanks Peter; tips and prods like this are always appreciated! — and while I know journaling isn’t the most thrilling topic (I don’t keep a journal myself) I still wanted to wrote about it.


Because you can use jrnl as a general purpose notebook or jotter in which to log your thoughts, ideas, musings, experiments, and so on in. You don’t have to get deep and personal. I’ve written about command line to-do lists before, so a note-taking tool is a logical extension of that.

Heck, if I’d known about jrnl when writing my list of command line apps for Ubuntu I dare say I’d have included it. jrnl is impeccably well made, easy to master, and configurable for advanced users.

But why use a CLI app for note taking? How is that useful?


With no bells and whistles in your face you’re able to focus solely on what you want to say. You’ll find no formatting options here, no colours, no headers; you can’t insert photos, links, or other media. It is a supremely focused, distraction-free input tool.

Key features of jrnl:

  • Uses a natural language interface
  • Journals stored in plain-text files (i.e. widely used format)
  • Ability to encrypt journals with industry-strength AES encryption
  • Cync journals between devices using cloud services
  • Maintain multiple journals
  • Search and filter entries by date, word, or tag

If there’s a ‘downside’ to this terrific tool it’s that installing it is a bit of a hassle.

To install jrnl on Ubuntu you can use Homebrew or pipx (the latter should be installed using pip rather than apt to avoid dependency errors). I can’t find a PPA with a current build, nor a Snap or Flatpak package. Arch Linux users can install jrnl from the aur, however.

But as jrnl is an open source app the code is available on GitHub to compile by hand, or package into a more widely consumed app format.

Getting started with jrnl

Adding entries is effortless

Once jrnl is set up correctly it is deliciously easy to get to grips with: just type jrnl, hit the return key, then start typing your entry. When you’re ready to save hit ctrl + d.

You can also file journal entries directly. Just run jrnl followed by your entry. Keep in mind that in this mode you can’t use reserved punctuation characters like hashtags and brackets without escaping them with the \ key.

To add a date and time you specify it first, and add a : to the end so that jrnl knows it’s not part of the actual entry), like so:

jrnl now: writing a post about jrnl. it is an improve tool.

If you don’t specify a date and/or time the app the app files you entry under the current day, but at at generic time (which specified in a configuration file someplace).

You file something retrospectively by specifying a date (and time) too:

jrnl last thursday: got email about jrnl. it is a command line note taking tool with lots of features. I like it!

All of the text before the first . (or ?, !, or :) gets used as the title for your entry. You may choose to word this accordingly.

You can also use @tags in entries.

Going Further

It’s as powerful as you want it to be

To view all your past entries run: jrnl -to today. To see entries from a specific date run: jrnl -on yesterday, or jrnl -month November, etc.

To only see the 8 most recent entries run: jrnl -n 8. To only see entry titles add the --short argument, e.g., jrnl -n 5 --short.

To filter past entries (i.e. only see entries with match a word or date) use: jrnl -contains "cats". To filter entries based on tags mention a tag: jrnl @tag. You can combine filters to get precise e.g: jrnl -n 10 @tag -and "thisword".

No arcane commands here

Naturally this post does not cover everything jrnl can do. The app can be as no-frills or as advanced as you want it.

The jrnl homepage has thorough documentation. There you’ll find details on how to format journal entries with colours and spacing; use external editors to make or edit entries; create multiple journals; encrypt your writing so that no-one else can take a sneaky-peek; pipe it to other apps or formats, and so on.

In short, jrnl is a tool designed to get your thoughts down as simply and as quickly as possible. Fans of Evernote and related services will find jrnl limited feature set a bit too sparse for use. However, those easily sidetracked when writing down thoughts or making notes will likely to find the minimal feature set a distinct advantage.

Apps journal jrnl note taking apps terminal apps