Skip to content

shelldone

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.

Everything you need, nothing you don't

Built for developers who run long commands and need to know when they finish.

Auto-Notify

Commands running longer than a configurable threshold trigger notifications automatically. No need to remember to prefix anything.

6 External Channels

Slack, Discord, Telegram, Email, WhatsApp, and generic webhooks. Get notified wherever you already work.

AI CLI Integration

Native hooks for Claude Code, Codex, Gemini CLI, Copilot, and Cursor. Know when your AI agent finishes its task.

Cross-Platform

macOS, Linux, WSL, and Windows via Git Bash, MSYS2, and Cygwin. One tool that works everywhere you have a terminal.

Zero Dependencies

Pure bash. No Python, no Node, no Go, no Rust. Just your shell. Installs in seconds, works immediately.

Notification Control

Mute notifications, toggle individual layers, schedule quiet hours. Full control over when and how you get alerted.

Interactive TUI Setup

Run shelldone setup for a menu-driven interface to configure channels, webhooks, and AI CLI hooks.

Up and running in 30 seconds

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

Simple by design

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.

How shelldone stacks up

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