I find notes extremely helpful for day-to-day life and for organising projects and tasks. However, the problem with my notes is that my note taking platforms keep changing, and I keep scattering my notes across different tools and files. Google Keep, Apple Notes App, txt files in OneDrive, markdown files in GitHub repos, paper notes, sending emails to myself, sending whatsapp messages to myself, Obsidian, etc etc.
The tool I’ve liked most is jrnl - it is a CLI utility that allows you to write a command like jrnl "3D printing idea: pottery stamps" to quickly add a journal entry to a single .txt file. It’s great.
There’s a couple of issues with this workflow though:
I generally do have a terminal open on my PC, but it’s still an extra bit of faff finding the right window and typing the command.
To solve this, I envisaged being able to press a global shortcut and have a small textbox pop up where I could just type the entry and hit enter to save it.
So I built jrnl-launcher, a small Python utility that runs in the background on Windows and gives me a global hotkey (Win + J) to instantly pop up a minimal entry window.
It works really well! And it’s helped me get into the habit of writing notes much more consistently. It still calls jrnl in the background with the actual note. Which might not be necessary, but I like the idea that the notes taken will be compatible with jrnl’s file format.
I’ve also added a feature to attach files to entries, which I think will be useful for keeping track of timelines and screenshots for projects.
I use both a PC and a laptop, and I want my notes to be available on both. I want to be able to swap between them at will.
To solve this, I’ve saved my jrnl file to OneDrive, so it stays in sync across both devices.
github would probably be more ideal and safer, but OneDrive was the easiest to use on my windows systems without any extra faff.
A problem that’s unsolved as of yet is syncing these notes to my iphone. TBD.
So the above works great for quickly taking notes and keeping them in sync across devices, but what I end up is a big chronological dump of notes.
I’ve got lots of different projects on the go simultaneously, and I’d like each project to have it’s own notes file to keep track of progress and next steps etc.
To do that I could:
That works okay, but it adds another piece of context switching which leads me getting distracted.
Absolutely not
And that someone else is Gemini
Gemini CLI is a great utility that’s helped me a lot for filesystem processes and rote things like troubleshooting python environment installations etc, which are always a massive pain to do manually when working with different machines and setups.
I recently learned that you can define custom commands for it, which are basically scripts that run in response to a specific gemini /command-name input. They can be a mix of natural language instructions and code, and you can pre-approve certain tool calls like cat, ls, ffmpeg etc which are safe.
As my first foray into this, I built a custom command that:
jrnl entries are all timestamped, which makes this part easy.It’s a pretty sweet setup. And a great use of LLMs to do the drudgery of sorting and organising information for me, leaving me more time for doing things in the real world.