A command-line journaling application
TypeScript 98.1%
Just 1.1%
Other 0.8%
93 3 0

Clone this repository

https://tangled.org/bitquabit.com/hayom https://tangled.org/did:plc:54ythkdehyiprvumgqy2nypr/hayom
git@tangled.org:bitquabit.com/hayom git@tangled.org:did:plc:54ythkdehyiprvumgqy2nypr/hayom

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

Hayom#

Hayom is a bog-simple journal app that focuses on plaintext. There are many apps like it, but this one is mine.

builds.sr.ht status

Installation#

Clone hayom locally via git clone https://git.sr.ht/~bmp/hayom, then, while inside the directory, run deno task install. You should then have a hayom executable in your PATH.

Usage#

Writing entries with Hayom is designed to be as easy as possible so there is no friction. For short entries, it's trivial to just write what you want directly on the command line:

hayom I ate some pancakes! They were delicious.

Everything up to the end of the first sentence (demarcated by ., ?, or !) will be considered the entry title. It's fine to have just a title.

For longer entries, just type hayom, and it'll pop up an editor. Hayom will honor the editor setting in its config file first, $EDITOR second, and attempt to use nano last.

If there's sufficient interest, I will switch the default to ed.

To read entries, you must specify at least one filtering command. These commands are:

  • --from/-f: the earliest timestamp to include
  • --to/-t: the last timestamp to include
  • --summary/-s: show just entry titles, not bodies
  • --count/-n: how many entries to show
  • --on: show entries made on a specific day

You can additionally specify tags (formatted as @tagname) to filter entries.

All the time-based commands take natural English, not just dates. For example, the following command line gives you all the entries between last month and this month that were about @bob's @tpsreport:

hayom -f '2 months ago' -t 'this month' @bob @tpsreport

Or, if you're curious what you did last Tuesday, it's as easy as writing:

hayom --on 'last Tuesday'

Editing#

For any of the filtering commands, if you add -e/--edit, those entries will pop up in your editor. There, you can add extra entries, change timestamps, delete entries, and whatever else floats your boat. For example, to edit everything I wrote yesterday, I might do

hayom -f yesterday -e

If you cancel your editor without saving, the journal will be left as-is.

Multiple Journals#

You can have multiple journals. If you do, simply specify the journal you want with the --journal or -j command. E.g., if you had personal and work journals, you might do

hayom -j work Finally filed my stupid @tpsreport
hayom -j personal Sent out a pile of résumés today

If you don't specify a journal, hayom will use the default.

Configuration#

Hayom works fine with no configuration file. If you do that, it will make a journal called .hayom in your $HOME. Alternatively, you can create a file called $XDG_CONFIG_HOME/hayom/hayom.toml (Linux and macOS) or %APPDATA%\hayom\hayom.toml (Windows) with your configuration options. An example configuration file might look like:

editor = "kak"
default = "personal"

[journals.work]
journal = "/home/benjamin/journals/work.txt"

[journals.personal]
journal = "/home/benjamin/journals/personal.txt"

Community#

Feel free to come discuss Hayom either on the skunkworks mailing list or in my IRC channel. These are also great places to report bugs to fix.

Submitting Patches#

If you feel comfortable using git send-email, please kick your patches off to the skunkworks mailing list. If you don't, stop by the IRC channel, and we'll figure something out.