#compdef hush _hush() { local state _arguments \ '1: :->command' \ '*: :->args' \ && return 0 case $state in command) local commands=( 'daemon:Start the daemon in the foreground' 'start:Begin a new recording' 'stop:Stop recording and transcribe' 'abort:Cancel and discard the current recording' 'toggle:Start recording if idle, stop if recording' 'status:Show daemon state and recording duration' 'latency-test:Run a full STT+LLM round-trip latency test' 'setup:Interactive configuration wizard' 'show:Display current configuration' ) _describe 'command' commands ;; args) case $words[2] in show) _arguments \ '--plain[Show plain key=value pairs instead of a table]' \ '--json[Show raw JSON output]' ;; esac ;; esac } _hush "$@"