Writing
-
I wanted agent state in Zellij, not another tab I forget about
zj-agents: a stock Zellij engine and sidebar that classifies coding-agent panes (Idle, Working, Blocked, Done) without a fork, hooks-only pipeline, or guessing which Claude tab is stuck.
-
How Keylore got planned on a twenty dollar day and shipped with Grok
Spec and plan with GPT, implement with Grok 4.5, reiterate until it holds, then SDD. Also the GH Actions minutes I spent on everything else.
-
What Keylore actually does to your configs
Discover, edit, consent-based template kits, and shortcuts for Ghostty, Zellij, AeroSpace, and LazyGit on a Mac.
-
I got bored of editing configs blind, so I shipped a macOS app
Keylore is a native macOS app for developer configs: discover, edit, optional data-only template kits, and a short series on how it was built.
-
I forked Zellij so my terminal could show images again
Kitty Graphics inside Zellij for Yazi, Codex pets, and Grok on Ghostty. Built with a review loop, not a thin paste, and pointed at what upstream actually wants next.
-
I put the Mac mini behind Cloudflare and now typing feels wet
After nixup made every machine feel the same, I still needed the always-on mini from outside. Cloudflare Tunnel got me in. The keyboard bill arrived later.
-
I got tired of setting up the same laptop three times
How nixup turned a multi-machine Nix flake into a config file, a Rust CLI, and a smoke test I actually trust.
-
I turned my job hunt into a pipeline, then got rejected by my own tech stack
Three months of hunting for senior engineering roles across mobile, AI, and backend, run as a pipeline with career-ops, Playwright, and Claude.
-
My job hunt runs itself twice a day now
Scheduling career-ops as local Claude Desktop tasks on my Mac, twice a day on weekdays, without handing my browser to the cloud.