ws
Go · TUI · CLIA workspace switcher and scaffolding tool. Fuzzy-search your projects from a TUI, jump into one, or start a new one from a template.

every experiment gets a dated folder now. my home directory has never been this tidy.
Made · 10 things
Small tools, mostly for myself, sometimes for the living room. All of them are open source.
mostly because something annoyed me, and I had an evening.
A workspace switcher and scaffolding tool. Fuzzy-search your projects from a TUI, jump into one, or start a new one from a template.

every experiment gets a dated folder now. my home directory has never been this tidy.
A modern, friendlier wrapper around macOS caffeinate. My first oh-my-zsh plugin.
caff’s menu bar sibling: a small macOS app that runs caffeinate with one-click presets, a custom duration and the core sleep modes. Installs with Homebrew.

A real-time slideshow and quiz game for family nights: a host screen on the TV, players on their phones, an admin view, and live scoring.
github.com/akalp/SlidePlay ↗the story, 11 min →

first played at my dad’s birthday, on the living-room TV. the scoreboard got loud.
Turns phone photos of worksheets into clean, printable pages: perspective correction, cropping, tone and manual erase. Runs locally, no accounts, no cloud.
github.com/akalp/paper-cleaner ↗

A cozy Pomodoro app with a tamagotchi twist: every honestly finished focus session helps a small pet grow. Local-first, works offline, made for the iPhone home screen.
github.com/akalp/petpomodoro ↗petpomodoro.pages.dev ↗

An unofficial CLI and TUI that builds, installs, updates and repairs the Aseprite sprite editor from its official source code. It never redistributes the binaries.
github.com/akalp/aseprite-builder ↗

A Dev Container for LaTeX: open the folder in VS Code and get build, lint and format on save, with a SyncTeX preview next to the source.
A Bootstrap 5 plugin for searchable, collapsible, nested navigation menus.
The page you’re on. How it’s put together is in the colophon.
yes, this counts.
Work I was part of, not mine to open source.
the story behind these is on /about