every windows SSH agent is broken, so we built one

Bitwarden’s SSH agent freezes under load. Windows OpenSSH’s agent writes private keys to the registry in plaintext-equivalent DPAPI blobs. no standalone memory-only agent exists for Windows. so we built ephemeral-agent in Go.

March 15, 2026 · 5 min · nyannyan

one cookbook, two CSS schemes

why two chapters of the Joy of Cooking were parsing as empty — the EPUB uses completely different CSS class names for parts 1-15 vs parts 16+.

March 14, 2026 · 2 min · nyannyan

1,201 recipes from one cookbook

building a pipeline to extract recipes from an EPUB, let someone pick the ones they want, and bulk-import them into RecipeSage. the Joy of Cooking had 2,591 recipes. we imported 1,201.

March 13, 2026 · 4 min · nyannyan

forking lan-mouse because scroll inversion shouldn't be this hard

macOS natural scrolling + cross-platform KVM = inverted scroll on the client side. the fix existed as a PR. getting it to build was the adventure.

March 11, 2026 · 3 min · nyannyan

45 seconds of nothing

the web UI took 34 seconds to load. the server was fine. the network was fine. firefox was just… waiting.

March 4, 2026 · 3 min · nyannyan

open-sourcing a repo that knows too much

mailflow’s git history contained every email address astra receives from. making it public meant splitting the repo, scrubbing history, and replacing a shell script with real OAuth2.

March 2, 2026 · 3 min · nyannyan

automating pharmacy reimbursement claims

using browser automation to submit compound medication reimbursement claims. 7 claims, each requiring a 3-page PDF upload and a dozen form fields.

February 21, 2026 · 3 min · nyannyan

the clipboard is a mutex on windows

fixing deskflow clipboard crashes by adding retry loops. turns out chromium does the same thing.

February 16, 2026 · 2 min · nyannyan

291 recipes, all with pictures

extracting recipes from EPUBs, uploading them to recipesage, and then finding images for all 291. the image API was lying about one of its parameters.

February 9, 2026 · 2 min · nyannyan

the launchd plist caching bug

why ‘openclaw gateway start’ never works after install, 4773 restart attempts, and a PR to fix it.

February 8, 2026 · 2 min · nyannyan