Emacs or CLI for productivity ?

Due to an update in the firewall at my workplace and a change of computer, I was no longer able to use Doom Emacs directly on Windows. I could use it in WSL, which is the recommended way, but was plagued by ugly colorschemes. In the past, I tried a vanilla Emacs config, which was one possible way out, but I remembered it being quite slow when starting org-mode. Another possibility was to drop my entire productivity stack from Emacs and move to pure CLI tools.

So far, I had been taking notes, managing tasks, managing my scientific bibliography, and tracking my workouts from Emacs. Is it possible to have a similar stack, command-line only and cross-platform ?

First, let us choose an editor and a shell. As said elsewhere, nushell and helix are my favorite tools for that. Both are cross-platform and quite fast. Now, what would our stack look like? For task management, taskwarrior is a staple amongst CLI users but only runs on Linux. This would require using Windows Subsystem for Linux just for that, and my work computer is quite low on RAM... Another possibility is to get back to basics with the todo.txt format. It serves as a standardized format for storing your tasks in plain text. There is a CLI tool, which is a more rudimentary version of taskwarrior and a nice, FOSS, cross-platform GUI. In a later post, I'll summarize my experiments with both of them.

Note-taking is both simple and hard. It can be just a bunch of markdown files in a folder, but I had been looking into the Zettelkasten methodology. The closest thing for Zettelkasten on the CLI is zk. I ended up on a simpler solution with helix and markdown-oxide, which I'll cover in another post. What I didn't do yet was journaling. On the CLI, jrnl is a joy to use. It writes a simple text file with a timestamp but allows to search by dates or tags. I was hooked. Unfortunately, I could not figure a good way to take bibliographic notes. There is of course papis, a reference manager. Even though I wrote my medical thesis with it, it was not a very smooth experience. So I settled to create manually a note matching the bibtex key as the filename and put the paper title manually inside the note.

Tracking workouts is both simple and difficult. I have been doing it for 8 years in plain text, mostly in org-mode. The format was rather loose and did not lend itself to queries and plotting progression. Outside emacs, I did not find a CLI tool that would do that and ended up writing my own in Zig. The final solution, using the KDL format, will be the subject of a later post.

Here's the result of my experiments showing relevant emacs packages and, in my opinion, their CLI counterpart.

Emacs CLI
Note-taking (zettelkasten) Denote, org-roam markdown-oxide, helix with a markdown LSP
Journaling org-journal, denote, org-roam jrnl
Bibliographic notes citar-denote, citar-org-roam manual notes
Tasks org-mode taskwarrior, todo.txt format
Tracking sport org-mode KDL file format

A few months later, I was able to re-install Doom Emacs at work. Now it was time to take stock of the experience. I had spent too many hours looking for advice online, ranging from a single text file to manage your life, to hardcore Emacs aficionados. Oftentimes, I would come across some very sensible advice saying the tool did not matter. At first, I refused to see that. Surely there must be a best way to efficiently take notes, store knowledge, manage your hundreds of tasks... It was just a question of finding the right Emacs package or command-line tool. Or was it?

At that point, I was getting lost in the technical realm of plain-text productivity. Should I really learn Emacs keybindings? Will the todo.txt GUI on Windows have enough features to query my numerous side projects? What's the best way to name your notes for the Zettelkasten methodology? In the end, I realized, like others before me, that jumping between tools is just another way of procrastinating. Other tools always look shinier than yours, and it's more fun to switch systems than to actually get things done. But there is one thing in common for all productivity systems: what matters is the hours you put in, whether on a notebook or in Obsidian. There are no perfect tools, only good habits.