whinge.
All docs

The whinge command

whinge controls the Whinge app. Install the command from Settings or with /Applications/Whinge.app/Contents/Helpers/whinge install.

whinge [start] [--output DIR]
whinge attach
whinge stop | cancel | draw | clear | bug | status | last
whinge log [DIR] [--path]
whinge settings | install | version

start first listens for a start phrase, then records until Stop. --output DIR chooses the parent folder for this recording; without it, Whinge uses the location in Settings, initially Documents/Whinges.

attach waits for the active recording. cancel discards a recording or stops listening. last prints the newest saved folder. Exit status is 0 on success, 1 on failure and 2 on cancellation.

Watching a recording happen

start and attach print one JSON object per line as things happen, so another program can follow a recording without waiting for it to end. A reader should ignore any event or key it doesn't recognise; more may be added.

{"event":"listening","phrase":"let's whinge"}
{"event":"started","dir":"/Users/you/Documents/Whinges/2026-09-23-114500"}
{"event":"transcript","t":6.8,"text":"the login form loses focus"}
{"event":"snapshot","t":9.1,"file":"snapshots/00009.10-1-clear.png","reason":"clear"}
{"event":"topic","t":12.4,"topic":2}
{"event":"saving"}
{"event":"finished","dir":"/Users/you/Documents/Whinges/2026-09-23-114500"}
EventWhenKeys
listeningwaiting for the start phrasephrase
startedrecording begandir
transcripta stretch of speech finishedt, text
snapshota still was grabbedt, file, reason
topicthe drawing was clearedt, topic
savingStop was pressed, writing the folder—
finishedsaveddir
cancelleddiscarded (exit 2)—
failedsomething went wrong (exit 1)error

t is seconds into the recording. file is relative to dir. The last line is always one of finished, cancelled or failed.

Other apps, including Offsider, can launch whinge start --output DIR and read the finished line for the saved folder.