Diary

jrnl – command-line journal software

jrnl is a command-line diary for recording thoughts and events without opening a graphical application. A short command can create a new entry, while longer writing can be composed using an external editor. Its natural-language handling of dates makes recording past events especially convenient.

The program is designed to work with writing that remains accessible over time. Journals may be kept in ordinary text files or organised in directories, and entries can be retrieved using search expressions. An optional encrypted file format is available for material that should not remain readable on disk.

jrnl supports separate journals for personal notes, professional work and other subjects. Its text-oriented workflow also fits shell scripts and external file synchronisation tools, without introducing a hosted account or proprietary diary service.

This is free and open source software.

Key Features

  • Create entries directly from the shell using human-readable timestamps, including expressions such as ‘yesterday’.
  • Compose longer entries in a configured external editor.
  • Search, filter and display entries by date, content, tags and other criteria.
  • Assign an entry title and use starred entries to mark significant moments.
  • Maintain multiple named journals with separate storage paths.
  • Store entries in a single plain-text file or a dated directory hierarchy.
  • Use the optional iCalendar VJOURNAL storage backend for compatible diary data.
  • Optionally display newly submitted entries in the terminal after saving them.
  • Read and write compatible Day One Classic journal directories.
  • Protect single-file journals with password-based encryption using the current Fernet-backed format.
  • Use system keychain integration to avoid repeatedly entering a stored journal password.
  • Export journal content to supported portable formats, including JSON.
  • Configure default journals, editor selection and other behaviour through a configuration file.
  • Synchronise ordinary journal files using external file services, rather than a proprietary built-in cloud service.

Website: jrnl.sh
Support:
Developer: jrnl maintainers and contributors
License: GNU General Public License v3.0

jrnl is written in Python. Learn Python with our recommended free books and free tutorials.


Related Software

Diary Apps
RedNotebookDaily journal with calendar, templates and keyword searching
LifeographOff-line and private journal and note taking application
KontactUnites mature and proven applications
moodiaryCross-platform diary application
jrnlSimple journal application for your command line
Caps-LogTerminal-based journaling tool
Mini DiariumLocal-only journaling application
TUI-JournalTerminal-based journaling and note-taking application
Org modePowerful system for organizing projects, tasks and notes in Emacs
ThotKeeperCross-platform and hierarchical personal journal manager
Almanah Diary Small diary application
Simple DiarySimple and lightweight diary app
JournalerPrivacy-focused daily journaling app for recording personal thoughts
Daily YouPrivacy-focused diary and journaling application

Read our verdict in the software roundup.


Best Free and Open Source Software LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.

We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more.

Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion.

Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted