Prowl is a Growl-like client for the iPhone which accepts notifications from your computer (Mac, Windows) using push. UNIX and Linux systems are also supported via a third-party API that you can use to build your own applications. Installing Prowl is easy enough, and doing so in conjunction with Growl is well explained.
In order to use Prowl with anything other than the add Notification Web page on the Prowl site, you'll need an API key which you can get on the Prowl site after registering an account and logging on. Applications which you give your API key to (any of those below) can add a notification but cannot do anything else, such as reset your password. You should keep your API key secret of course, but even if it does leak out, nobody can do much with it except pester you with notifications. :-) (In which case you simply regenerate a key and copy that to the applications that used the old key.)
On the command-line, you can use prowl.pl to push out a notification. The short script has modest module requirements, most of which you should have installed already. You can use this at the end of a sequence of long-running commands, to alert that something is finished.
For example, suppose I'm downloading a copy of the latest Ubuntu, I could do this:
wget ... prowl.pl -apikey=<40byteshexadecimalstring> \ -application=CLI \ -event=Download \ -notification=ubuntu-910 complete
(What will I do en-route with the information that several hundred megabytes have finished downloading at home? Don't ask. :-) )
How about IMAP notifications? Martin Schmitt has written GhettoPush, a Perl program that listens for new messages on an arbitrary IMAP server waiting for new messages to arrive. It does so using IMAP IDLE, so the program "wakes up" when a new message arrives, and it then notifies Prowl with sender and subject of the message.
After installing some prerequisite Perl modules (Mail::IMAPClient, WebService::Prowl, and MIME::EncWords), obtain a copy of GhettoPush from its Git repository
git clone git://github.com/mschmitt/GhettoPush.git
You then set up a configuration file, giving it whichever name you like, describing how GhettoPush should access your IMAP server, with which credentials, and of course Prowl's API key. Here's a sample configuration I used for accessing Gmail:
# Title that will appear in prowl events prowl_app = IMAP # Prowl API key prowl_key = 40byteshexadecimalstring # IMAP server data imap_host = imap.gmail.com imap_port = 993 imap_user = gmailusername imap_pass = gmailpassword imap_ssl = yes # This usually doesn't need to be changed. imap_box = INBOX # Optionally, specify the name of a log and PID file. #logfile = ~/imapidle2prowl.log #pidfile = ~/imapidle2prowl.pid
imapidle2prowl.pl passing it the name of the configuration file you
just created. (If you want the program to remain in the foreground, set the
GhettoPush sends Prowl-notifications with a priority of 0. If you change the Prowl App's settings, enabling Quiet Hours and set your Quiet Times (e.g. 22:00 - 7:00), Prowl won't chime when a message arrives -- you get peaceful, uninterrupted, beauty sleep. :-)
Messages in your IMAP server's INBOX are left unchanged -- their flags aren't modified, so if you later access your IMAP's INBOX you'll see the messages as being new.
If you have multiple IMAP accounts you want
imapidle2prowl to watch, create
different configurations and launch as many copies of
imapidle2prowl as you
need. You can change the name of
prowl_app in their respective configuration
files to differenciate notifications you receive on your iPhone.
(I believe Martin uses some black magic and Tabasco to get GhettoPush notifications to launch his iPhone's Mail client to retrieve the IMAP message proper via Stunnel, and perhaps he's willing to tell us about it some day he shows us how. Thanks. )
If you feel like hacking but are more comfortable with Python, there is a similar project called Gprowl, but I haven't looked at that.
There's probably no end to what you can do with Prowl; some ideas off the top of my head:
- Send out Nagios/Icinga alerts. This is easy to implement with, say, prowl.pl, discussed above.
- Alert yourself when an important (for you) Tweet arrives by having a program parse your friend's timeline and reacting on particular Twitter users or messages.
- Combine Remind and one of the Prowl APIs to have reminders sent to you. (But you can also do that by having Remind send you an e-mail.)
- There are many more things, and using Prowl notification to run a script on your phone certainly is one of the more nerdy. ;-)
The Prowl app costs EUR 2.39, but that is all you pay (apart from carrier charges, of course). Notifications don't cost anything extra. There are limits on the amount of notifications you can send per hour (1000), but that should be more than any mortal -- at least this one -- needs.