Earlier this year, I started a small habit. Every day, I'd open Neovim and write down what was on my mind: thoughts, emotions, whatever the day had thrown at me. All in plain Markdown files.
I loved it. What I didn't love was the housekeeping.
My journal needed a janitor
Writing was the easy part. The annoying part was everything around it: naming files, sorting them into folders, keeping things in some kind of order so I could actually find them later. I was doing all of it by hand, and it felt a bit ridiculous to spend my energy organizing the one thing that was supposed to clear my head.
So I did what developers do when something is mildly annoying. I decided to build a tool for it. That's how jerd started.
Why a terminal, and not an app?
For me, journaling clears out mental clutter. It's a place to think honestly and freely, without interruption. I still think pen and paper does that best, and jerd is my attempt at a close second.
My first idea was a minimal web app. Then I realized a browser is basically a distraction machine: you open it to journal, and ten minutes later you're three tabs deep in something else.
So I skipped the interface entirely. A terminal app means you open it, write, and you're done. It's also where I wrote my first program back in grade nine. It added two numbers, which is embarrassing, but jerd does something a bit more useful, and the spirit is the same: keep it simple and do one thing well. For jerd, that one thing is letting you write.
From file organizer to journaling tool
The first version of jerd just sorted my entries into folders so I didn't have to. Once I had a CLI that understood my journal, a few additions felt natural, as long as they supported the writing instead of getting in its way:
- Tags to group entries by topic
- Search for finding that one entry from months ago
- Mood tracking that maps out on a calendar over time
Every entry is a plain .md file, sorted into year/month/day folders automatically. There's no database and no lock-in, so you can open your journal in any editor. Nano, Vim, Neovim and VS Code all work. It runs entirely on your machine, needs no account or internet connection, and never uploads your entries anywhere.
Try it
If you have Node.js installed:
npm i -g jerd
jerd
Or run it without installing anything:
npx jerd
The website
I spent weeks crafting the website myself, and I genuinely love how it turned out. You can see it at jerd.eitt.io.
It's all open source
The CLI, the website, and the design files are all public, so you can see exactly how jerd is built. If you want to poke around, borrow an idea, or tell me what I got wrong, you're welcome to.
Feature requests and bug reports are welcome on GitHub too.
Let me know what you think
If you journal in the terminal too, I'd love to hear how you do it. Do you have a setup that works for you? Is there a feature you wish a tool like this had? Drop it in the comments.
Thanks for reading, and happy journaling. 📝

Top comments (0)