doma
a directory tag manager

put directories on the cutting board

tag the folders you actually live in. then jump, list, or run across the whole pile.

I kept losing track of where things lived — twelve Crystal repos in one folder, seven shell experiments in another, the security write-ups elsewhere. cd's history wasn't enough; fuzzy finders forgot what mattered the moment I cleared the terminal. So I wrote a cutting board: pin the directories I care about, label them with whatever tags make sense (crystal, work/proj-a, reading-this-week), and let the tool do the recall.

tag

label the dirs you care about with anything that makes sense — language, project, weekly spike.

jump

doma cd opens a TUI picker when there's more than one match. shell wrapper makes it actually cd.

fan-out

list paths by tag and pipe them into anything — build, grep, sync — across the whole pile at once.

~ a quick taste
# put a directory on the board
$ doma add ~/Projects/doma -t crystal -t cli

# jump to one (interactive picker if there's more than one match)
$ doma cd crystal

# operate on the whole pile
$ doma list -t crystal --paths | xargs -I{} sh -c 'cd {} && shards build'

# bookmark the current dir for the week (auto-expires after 7 days)
$ doma mark spike

It's a single static binary, written in Crystal, with a built-in TUI picker. Tags can be permanent or expire on a TTL. There's a shell wrapper (doma setup install) that makes doma cd actually change your working directory, and an AI skill so coding agents (Claude, Codex, Gemini, …) can treat your tagged paths as a first-class input list.

도마 — the Korean word for cutting board. the workbench where ingredients get gathered, grouped, and chopped before going into the pan. the metaphor stuck.