CL-Growl client library released April 12th, 2010
Patrick Stein

Growl is a notification system for Mac OS X. You run a Growl server on your machine. Then, applications can send notifications that will be displayed on your desktop. Growl supports a thin network protocol called Growl Talk that programs can use to send notifications to the Growl server (and hence, to your desktop).

Growl is incredibly useful for any program that operates asynchronously with the user. If you want to be notified when some portion of your job completes or when there is a critical error in your web application, Growl is a great tool to have at your disposal.

I wrote an implementation for Common Lisp of the client protocol. Here is a simple example of how you might use it:

(let ((growl:*growl-default-app* "My Lisp Application")
      (growl:*growl-default-host* "localhost")
      (growl:*growl-default-password* "my-growl-password"))
  (growl:register :enabled (list "Warn" "Error")
                  :disabled (list "Info"))
  (growl:notify "Program starting up..."
                :notification "Info")
  (unless (connect-to-database ...)
    (growl:notify "Cannot connect to database!"
                  :title "Critical Error!"
                  :notification "Error"
                  :sticky t
                  :priority 2)))

For more complete usage information and to learn how to obtain the library, see the CL-Growl web page.