honk 0.2.0

Make your computer honk like an old-school car. Honk, honk!
honk-0.2.0 is not a library.

honk

Make your computer honk like an old-school car. Honk, honk!

Long build? Slow test suite? A deploy that takes forever? Put honk at the end and go get a coffee. Your computer tells you when it is done, the way a 1920s roadster would.

Quick start

brew install mklab-se/tap/honk
honk                      # Honk, honk!
honk --style awooga       # a-WOO-ga
cargo build && honk       # tell me when it's done
     ______
  __/  |   \___  o< ) )   HONK!
 |_  _ |  _  __|
   (_)    (_)

Five horns

Style Sounds like Try it
bulb (default) A squeezed rubber bulb horn on a vintage car honk
awooga The Model T klaxon: "a-WOO-ga" honk --style awooga
car A classic dual-tone car horn, two notes a major third apart honk --style car
truck A low, slowly beating air horn honk --style truck
clown A short, high, wobbly squeak honk --style clown

Every honk is synthesised on the fly: no audio files, nothing to download.

Notifier mode

honk knows how your command went. Success gets a happy honk that bends up at the end; failure gets a sad, longer honk that sags down.

# Honk when it's done, whatever happened
cargo build && honk

# Happy or sad, depending on the exit status
make test; honk --status $?

# Run the command for you, honk by outcome, and pass its exit code through,
# so && chains and CI keep working
honk -- cargo test

# Make a deploy impossible to miss
honk --times 5 --style truck -- ./deploy.sh

With honk -- cmd, the command's output is untouched and honk exits with the command's own code (127 if it could not be started).

Shape it

Flag What it does
--times N Number of honks, 1 to 10 (default 2)
--long Longer honks
--pitch X Pitch multiplier, 0.5 to 2.0
--volume X Volume, 0.0 to 1.0 (default 0.8)
--wav FILE Write the honk to a WAV file instead of playing it
-q, --quiet No ASCII car

The car only appears when stderr is a terminal, so pipes and logs stay clean, and the honk itself never writes to stdout.

Make it yours

Put your favourite honk in config.yaml and plain honk uses it. Flags still win.

style: awooga
volume: 0.5
times: 3
Platform Location
Linux ~/.config/honk/config.yaml
macOS ~/Library/Application Support/honk/config.yaml
Windows %APPDATA%\honk\config.yaml

Set HONK_CONFIG_DIR to use a different directory.

Works everywhere

  • Linux through ALSA, which also covers PulseAudio and PipeWire. The binary needs the ALSA runtime library (libasound2, present on any desktop Linux; Homebrew installs it for you).
  • macOS through CoreAudio.
  • Windows through WASAPI.

No speaker? No problem: on a headless server, in CI or over SSH, honk prints one warning and exits 0 (or with the wrapped command's code), so it never breaks a build. Set HONK_NO_AUDIO=1 to silence it on purpose.

Install

Method Command
Homebrew (macOS, Linux) brew install mklab-se/tap/honk
Cargo cargo install honk (on Linux, install libasound2-dev first)
cargo-binstall (prebuilt, no compiling) cargo binstall honk
Prebuilt binaries Linux, macOS (Intel and Apple Silicon) and Windows on the Releases page

Every release ships a CycloneDX SBOM per platform. Shell completions, building from source and more are in INSTALL.md.

Part of the MKLab toolbox

honk is one of a family of small, sharp command-line tools from MKLab: ailloy (vendor-flexible AI for Rust tools), cosq (query Azure Cosmos DB), deemer (AI-judged integration tests), mdeck (Markdown presentations), pidge (e-mail and calendar for your AI agent) and rigg (configuration as code for Azure AI Search and Microsoft Foundry).

License

MIT