After over a month, I’ve been using this workflow and it has stayed (for all intents and purposes) completely intact. I’ve been productive not only consuming my wiki, but also easily adding new items.

But something was missing…

I live in the terminal. I do almost everything there (I’m pretty sure I only really need the terminal and a browser). And as a Vim user, that’s where I write my code… in the terminal. And that’s where I interact with things like my Linux environment… and the cloud… and containers… and.. well you get the idea. Everything.

Having to context switch to the browser to look through my wiki (still being hosted in a private GitLab repo) was painful. It was more time consuming that I’d like, and I felt that deep-seeded feeling that I really didn’t want to go to my wiki.

So I did what I thought was best… I brought my wiki consumption to the terminal. I wrote a quick Python script (see below (this is currently hosted in a private repository so I can’t exactly link you to that but you should get a good idea of the script)). Now the terminal experience is $ miki <my_search_term> . The output of this displays (and caches) matched topics by header. Then I simply type $ miki <cached_index> to dump the entire contents of the topic I want to consume. Here’s the experience…

Search for a topic that includes “resize” in the title

Display the specific topic contents by index

The example above shows my consumption workflow if I want to dump the topic I’ve created to remind myself how to resize window panes in Vim (I can never remember it). So I searched for “resize” in all of my topics and that showed that I have two topic titles with “resize” in them. It’s the Vim one I care about right now, which has the temporary cache index of 2. So then I call miki again to show me that second topic and it displays all of the contents to stdout.

Since I’ve written this script and integrated it into my daily flow, that context switching from terminal -> browser is now gone. After all, life is better in the terminal :-)

Miki script (install.sh and miki.py)