Auto-Notify
Commands running longer than a configurable threshold trigger notifications automatically. No need to remember to prefix anything.
Never miss a finished build again.
Cross-platform terminal notifications for long-running commands. Desktop alerts, sounds, Slack, Discord, Telegram, and more. Pure bash, zero dependencies.
Built for developers who run long commands and need to know when they finish.
Commands running longer than a configurable threshold trigger notifications automatically. No need to remember to prefix anything.
Slack, Discord, Telegram, Email, WhatsApp, and generic webhooks. Get notified wherever you already work.
Native hooks for Claude Code, Codex, Gemini CLI, Copilot, and Cursor. Know when your AI agent finishes its task.
macOS, Linux, WSL, and Windows via Git Bash, MSYS2, and Cygwin. One tool that works everywhere you have a terminal.
Pure bash. No Python, no Node, no Go, no Rust. Just your shell. Installs in seconds, works immediately.
Mute notifications, toggle individual layers, schedule quiet hours. Full control over when and how you get alerted.
Run shelldone setup for a menu-driven interface to configure channels, webhooks, and AI CLI hooks.
Install via your favourite package manager or clone the repo.
$ brew install nareshnavinash/tap/shelldone
$ curl -fsSL https://nareshnavinash.github.io/shelldone/KEY.gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/shelldone-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/shelldone-archive-keyring.gpg] \
https://nareshnavinash.github.io/shelldone stable main" \
| sudo tee /etc/apt/sources.list.d/shelldone.list
$ sudo apt update && sudo apt install shelldone
$ scoop bucket add shelldone https://github.com/nareshnavinash/scoop-bucket
$ scoop install shelldone
$ choco install shelldone
$ git clone https://github.com/nareshnavinash/shelldone.git
$ cd shelldone && ./install.sh
# Add to your .zshrc or .bashrc
$ eval "$(shelldone init zsh)" # for zsh
$ eval "$(shelldone init bash)" # for bash
# Or auto-configure everything
$ shelldone setup
Prefix any command with alert or use the built-in setup commands.
Run with alert
$ alert make build
Wraps any command. Sends a desktop notification when it finishes, with exit code and duration.
AI CLI hooks
$ shelldone setup claude-hook
Installs a hook so Claude Code, Codex, Gemini, Copilot, or Cursor notifies you on task completion.
Test webhooks
$ shelldone webhook test slack
Sends a test notification to your configured Slack channel. Works with Discord, Telegram, and others too.
The most complete terminal notification tool available.
| Feature | shelldone | undistract-me | noti | done (fish) |
|---|---|---|---|---|
| Auto-notify | Yes | Yes | Partial | Yes |
| macOS + Linux + WSL + Windows | Yes | No | Yes | No |
| External channels (6) | Yes | No | Partial | No |
| Zero dependencies | Yes | Yes | No (Go) | Yes |
| AI CLI integration (5 tools) | Yes | No | No | No |
| Sound + TTS | Yes | No | Partial | No |
| Mute / schedule / toggle | Yes | No | No | No |