For quite some time, I’ve had an appreciation for text-based tooling. Not (necessarily) for terminal-based tooling, mind—there are some meaningful benefits to using a GUI, after all—but for solutions that truly think of plaintext as their source of truth. To that end, I’ve been using a nice Python tool called jrnl for years, which makes maintaining a pure text journal really easy. All jrnl really does is to automate maintaining a simple text file in a straightforward way, and providing a few very simple ways to query its contents. And it’s completely happy to use whatever editor you want, so I can go ahead and write my posts in a nice graphical Windows- or macOS-native Markdown editor and not think twice about it.

The thing is, I’ve never been entirely happy with jrnl. For reasons that have nothing to do with jrnl proper, and a lot to do with the Python ecosystem, I routinely ran into issues where an upgrade to brew, or Python, or even just a weird collision of some pyenv with my system, would mean that jrnl quit working until I had time to figure out what had gone wrong. Tools like pipx made the pain minimal, but it still meant that I wasn’t always capturing journal articles.

Well, the nice thing about tools that use plain text as their file format is that they’re pretty easy to replace, so I’m happy to announce hayom, a pure-TypeScript, Deno-based replacement for jrnl. For now, it supports basically the same features (albeit with a more consistent, less surprising command-line argument format), and it’s entirely possible to point jrnl and hayom at the same journal file and get useful results.

If you’ve already got deno installed, you can run hayom immediately with a simple

deno run --allow-env --allow-read --allow-write --allow-run \
  https://git.sr.ht/~bmp/hayom/blob/main/cli.ts

or install it via

deno install -n hayom \
  --allow-env --allow-read --allow-write --allow-run \
  https://git.sr.ht/~bmp/hayom/blob/main/cli.ts

and start writing your journal.

In the future, there are several key improvements I want to make, including writing a lightweight web view with search, providing transparent Git and/or Mercurial syncing, and supporting images, but it’s already very useful to me as-is, and I figured it was time to share. So if you want a really easy-to-understand plaintext journaling solution, give hayom a try.