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
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.