Back to Portfolio

DevLog CLI

CLI · Go Maintained 2024

A tiny command-line tool I use to journal what I worked on each day. Stores entries as plain Markdown so my future self can grep them.

  • Go
  • Cobra
  • SQLite

The 30-second pitch

devlog add "fixed the auth race condition in /api/notes"
devlog today
devlog grep "auth"

That’s the whole tool. Each entry is a line in a Markdown file under ~/.devlog/YYYY-MM.md, timestamped, with optional tags. No web UI, no sync, no accounts.

Why a CLI

I tried Notion. I tried Obsidian. I tried a Google Doc. The friction of opening any of them at 6pm on a Friday was just enough to make me skip the day. The terminal is already open. devlog add runs in 30ms.

Anatomy of an entry

## 2026-04-12

- 14:22 fixed the auth race condition in /api/notes #bug #auth
- 16:05 reviewed Sari's PR on the upload pipeline #review
- 17:30 wrote up notes on the migration approach #docs

The format is intentionally boring so I can edit the files by hand when I want to, or grep through them when I forget what I was doing last quarter.

What I learned

  • Plain text wins. The moment I stored entries in a database, I resisted opening them. The moment they became Markdown files, I started reading them on weekends.
  • A grep subcommand is worth more than a search index. ripgrep is faster than anything I could build.

Status

I use it every day. Open source, ~600 lines of Go.