Google has announced the availability of a new tool called GoogleCL that will allow users to interact with the company's popular Web services directly from the command line.

GoogleCL was developed in Python on top of the gdata-python-client library. It's an open-source software project that's hosted on Google Code and distributed under the Apache license. Users who want to contribute fixes and improvements can submit patches through the project's issue tracker.

Although modern desktop computing is increasingly dominated by graphical user interfaces, command line tools are still extremely useful for rapid interaction, simple programmatic automation, and remote system management. GoogleCL will make Google-hosted data more accessible to common command-line workflows. The GoogleCL tool offers an easy way to pipe your GMail contact list into sed and awk, or use a shell glob to specify which photos and movies to batch upload to Picasa and YouTube. It also supports Blogger, Google Calendar, and Google docs.

The tool can be downloaded from its project page on the Google Code Web site. Google is making available a tarball with the source code and an installable DEB package. I tested it from the DEB package on my Ubuntu 10.04 desktop computer. The first time that you access each individual service, it will prompt you for your username and then it will supply an OAuth link that you can copy and paste into a Web browser to complete the authentication process. After initial account configuration, the tool can be used in pipelines and other non-interactive command line workflows.

I tested several of the features, particularly the GMail contact list support. It worked well with a Google Apps account that I use with one of my own domains. The supported services and operations are documented in the project's user manual. An assortment of sample uses can be found on the project's wiki.

Some of the features in GoogleCL, such as Google Docs editing, require at least version 2.0 of the gdata-python-client library. Unfortunately, the Ubuntu repositories only have version 1.2.4. The tool will work with the older version of the library, but will display an error message when the user tries to use a feature that isn't supported.

For more information about the tool, you can refer to the release announcement that was published this morning in Google's open source blog.