Search & stats

doma list <query>

Case-insensitive substring match across the canonical path, the basename, and every active tag name:

doma list auth                # any path/tag containing "auth"
doma list -t crystal auth     # crystal-tagged AND containing "auth"

Path/basename hits show up regardless of tag state; tag-name hits skip expired rows.

Glob filtering on tags

doma list -t 'work/*'                            # every tag like work/proj-a, work/proj-b
doma list -t 'work/**'                           # every tag under work/, any depth
doma list -t 'work*' --pick --first --by recent  # most-recent matching dir on stdout

*, **, and ? in a tag argument switch matching from exact-equal to glob:

Quote the pattern to keep your shell from expanding it first.

Listing tags

doma tags                     # every tag with a usage count
doma tags --names             # just the names (one per line, scriptable)
doma tags --tree              # group by `/` prefix

--tree groups hierarchically:

work/    2
  ├─ proj-a    1
  └─ proj-b    1

crystal    3
home    1

Stats

doma stats

--json emits the same data structured.