n: the command-line tool that I wrote without writing any code

There are three reasons I wanted to write this blog post:

  1. Just because I’m still exited! Exited about writing a tool in an afternoon. Exited about the way I did it and the flow I was in.
  2. Because I wanted to talk about beads.
  3. Because I wanted to mention n.

A tool in an afternoon

The idea of a command line tool that will fit my needs was planted quite a while a go. Couldn’t find the time or didn’t have the energy to act on it so it remained just that, an idea.

Until yesterday that I saw this video. At some point, beads gets mentioned. I was curious as to what it does exactly that decided that it was now or never:
I created a repo, added beads to it, bought some credits in warp.dev and vibe coded the tool I had in mind!

This was the initial prompt:

I am an engineering manager and I want to create a terminal tool, named n, that will allow me to take quick notes about my reports.
The idea is that whenever I want to note something down about one of my reports I will open a terminal and write: n <reports name> <my note>.
The notes must be organized in markdown files named after the report name. For example if I write "n leonidas a simple note" the tool must create a file named "leonidas.md".
The note must be added to the file under a header with the current datetime in the format YYYY/MM/DD hh:mm:ss.
For example:
"n leonidas one note" and "n leonidas another note" will result in:
## 2026/01/03 14:16:03
one note
## 2026/01/03 18:20:00
another note
The tool must be configurable. It will read its configuration from "~/.n/config". Its first configurable setting is the folder where it saves the markdown files. By default it saves them in "~/.n/db/".
The first the user runs the tool it checks if config exists and if not it creates it alongside the db folder.
I don't know which technology to use so I want you to help me decide and then create a plan for implementing the tool using the selected technology.

Warp provided a few options with their pros and cons. I chose Go and asked it to provide an initial plan. It did, I accepted it and after a couple of minutes I had a first version of my tool.

Watching the tool working was a pivotal moment. The “features gate” opened and all those ideas just poured out. Here is where beads saved the day.

Beads

The description in its repo is

A memory upgrade for your coding agent

The idea is to provide to your coding agent a way to create tasks keeping its context window small and its concentration at the task at hand. The initial setup is provided by the tool and leverages conventions like AGENTS.md, CLAUDE.md etc

I guess I didn’t push the agent enough to make it create tasks on its own but the fact that I had a tool to save all those ideas and then prompt the agent to “Lets work on the next task” put me in a great flow:

  1. I was asking the agent to work on the next task
  2. While it was working I was playing around with n and adding tasks to beads with either bugs or new features
  3. Go to step 1

That cycle kept me going for a couple of hours!

A simple command-line tool for taking quick notes about your reports.

I’ve always been a terminal guy. Seeing how coding agents increased even more the time I spent to it made me realize that the way I keep notes about my reports must migrate to the terminal too.

The idea is simple. Every time I want to note something down I write:

n name note

this creates a folder name and in that folder a file with the current date which contains the note.

The tool provides a way to tag, edit and delete notes. It provides a way to backup your notes using github and a few ways to see your notes about a report.

Its not much and I know there are better tools out there but this one is exactly as I want it and was implemented in an afternoon!

PS1: I vibe coded it which means that I did not see at the code at all. Don’t judge it 😛 !
PS2: The idea of having all notes in files is to provide them later on in an LLM and have a conversation to figure out the report’s growth.

Leave a comment