whatisgithub

What is jrnl?

jrnl-org/jrnl — explained in plain English

Analysis updated 2026-06-24

7,233PythonAudience · writerComplexity · 1/5LicenseSetup · easy

In one sentence

A command-line journaling tool that saves dated entries as plain text files, with built-in search, optional AES encryption, and natural-language date input like "yesterday" or "last monday".

Mindmap

mindmap
  root((jrnl))
    What it does
      CLI journaling tool
      Plain text storage
      Timestamped entries
    Features
      AES encryption
      Tag-based search
      Natural-language dates
      Editor integration
    Use Cases
      Daily journaling
      Private notes
      Searchable diary
    Platforms
      Mac via Homebrew
      Linux
      Windows
    Setup
      pip or Homebrew
      GPL-3.0 license
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Keep a daily journal from the terminal without opening a browser or app, with entries saved as searchable plain text.

USE CASE 2

Write private encrypted journal entries that require a password to open.

USE CASE 3

Search through months of past entries by date range, tag, or keyword from the command line.

What is it built with?

PythonAES encryption

How does it compare?

jrnl-org/jrnlamoffat/shsparckles/robyn
Stars7,2337,2357,236
LanguagePythonPythonPython
Setup difficultyeasyeasyeasy
Complexity1/52/53/5
Audiencewriterdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
Use and modify freely, but any distributed versions must also be open-sourced under GPL-3.0.

So what is it?

jrnl is a command-line journaling tool that stores your entries as plain text files. Instead of opening an app or a website, you type your entry directly in the terminal and it is saved with a timestamp automatically. You can write an entry in one line, or launch your preferred text editor for longer entries. Natural-language timestamps like "yesterday:" or "last monday:" are recognized, so you do not have to remember exact date formats. Journal files are stored in a format any text editor can open, which means your notes are not locked inside a proprietary database. For entries that need to stay private, jrnl supports optional encryption using AES, a widely trusted encryption standard. Encrypted journals require a password to open. Searching through past entries is built in. You can filter by date range, by tags (words starting with @ or # depending on your configuration), or search for specific text. This makes it practical for finding something you wrote months ago without scrolling through files manually. The tool is available on Mac via Homebrew, on Linux, and on Windows. It is written in Python and can also be installed via pip. The project is actively maintained and has a full documentation site at jrnl.sh. It is GPL-3.0 licensed.

Copy-paste prompts

Prompt 1
How do I create a new encrypted journal with jrnl and set a password to protect it?
Prompt 2
Show me how to search jrnl for all entries from last month that contain a specific tag.
Prompt 3
How do I configure jrnl to open my preferred text editor for writing longer journal entries?
Prompt 4
Write me a shell alias that lets me quickly add a timestamped thought to my jrnl journal from anywhere in the terminal.

Frequently asked questions

What is jrnl?

A command-line journaling tool that saves dated entries as plain text files, with built-in search, optional AES encryption, and natural-language date input like "yesterday" or "last monday".

What language is jrnl written in?

Mainly Python. The stack also includes Python, AES encryption.

What license does jrnl use?

Use and modify freely, but any distributed versions must also be open-sourced under GPL-3.0.

How hard is jrnl to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is jrnl for?

Mainly writer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.