Blog / tag
CLI design
Small decisions that make a command-line tool pleasant: output, completions, parsing and ergonomics.
Building a CLI with Effect 4
How envsec is built on effect/cli in Effect 4: commands, flags, shared options, services and layers, typed errors with exit codes, and tests.
Dynamic tab completion in bash, zsh and fish
How envsec completes contexts, keys and saved commands at Tab time in bash, zsh and fish, what each shell makes awkward, and the latency budget.
Parsing 1y6mo and generating secrets you can't guess
How envsec parses expiry durations like 1y6mo (and why a month is 30 days), and how its secret command avoids modulo bias. With the entropy math.
- 4 min readCLI design
Why there are no emoji in envsec's output
Why emoji break column alignment in terminals (wcwidth, East Asian Width, VS16, ZWJ) and the 27 geometric icons envsec uses instead.