Apple - Is there any way to have a badge appear on the Terminal icon in the Dock when a command completes?

As of Mac OS X 10.7 Lion, Terminal has exactly this feature.

If you emit a bell (BEL, Control-G) in a background tab or window, the Terminal application Dock icon will show a badge with the number of “unread” bells

Bell indicator badge in Terminal application Dock icon

and a bell icon is displayed in the tab of the terminal

Bell indicator in background terminal tab

(If there is only one tab in the window, choose View > Show Tab Bar to see the tab, which also displays other status information.)

This also applies to minimized windows.

When you bring the window to the front or select the background tab, the bell indicator is removed from the tab and the badge count goes down.


If you're willing to accept an answer to the more general question "is there a way to have me alerted when something completes in a Terminal window" then the answer is: yes.

If you're running Growl you can make a command line call from a script that will post a notification to Growl. For example:

do shell script "sleep 1h"
do shell script "growlnotify --sticky --message \"I'm all done sleeping for an hour! Did you forget about me?\" --wait"

The script won't exit until you clear the notification from the screen.

You could even use the --name option to give your script a unique name, and then from within Growl customize how events generated by that named application are displayed and dealt with. They can produce different types of pop ups on the screen, they can email you, they can send a message to you via iChat, they forward the event to Growl on another machine, if you're running Prowl on your iDevice they can even forward the notification on to your iDevice via push notifications.

Not quite the answer you were looking for, but hopefully it meets your needs.

GrowlNotify in action