Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.


gabi is unavailable in PyPM, because there aren't any builds for it in the package repositories. Click the linked icons to find out why.

 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
0.2.0 Failed View build log
0.1.0 Failed View build log
Windows (64-bit)
0.2.0 Failed View build log
0.1.0 Failed View build log
Mac OS X (10.5+)
0.2.0 Failed View build log
0.1.0 Failed View build log
Linux (32-bit)
0.2.0 Failed View build log
0.1.0 Failed View build log
Linux (64-bit)
0.2.0 Failed View build log
0.1.0 Failed View build log
Lastest release
version 0.2.0 on Jan 5th, 2011


gabi stands for Google Address Book Importer but it can also means Google Address Book Immediately or Google Address Book for paranoid Idiots


gabi's algorithm is quite simple:

  1. Download contacts from Google Contacts
  2. Save them into a file in json format
  3. Perform a query
  4. Output the query results

Step 1 is smart enough to only download those contacts that have changed since the last invocation.

For step 3 you should pass some query args to the command line. The query is performed as the OR of all query args. A query arg can be a simple string or a string with a ':' character. If a single string is used that text is matched in every attribute of a contact except for the id. If a ':' is found in the query arg, it is used to split the attribute name and the value to match. In this case only that attribute will be searched.

Right now only step 4 is flexible enough to allow the user to choose from different output formats. Supported formats include simple, json and mutt. In the future other steps are expected to be more configurable.

Mutt integration

Just edit your .muttrc file and add a line like this:

System Message: WARNING/2 (<string>, line 30)

Literal block expected; none found.

set query_command = "/usr/bin/gabi --user=your_google_email --password=your_password --store=/home/user/contacts.json --output-type=mutt '%s'"

Now you will be able to search your Google Contacts from Mutt.

Password for Google acccount

There are 3 different ways to input the password that is used to authenticate your Google account:

  1. Use the --password command line option
  2. Fetch the password from the GNOME keyring
  3. Enter the password interactively

These options are tried in that order. The second one, GNOME keyring, is only used if you have that software installed in your system and its daemon is running. If no password for gabi is found in the GNOME keyring, it will ask the user to enter one and it will save it on the GNOME keyring.

Future plans
  • remove deleted contacts from Google Contacts in the store file.
  • add a store backend for mongo db
  • if no query args are given output all contacts
0.2.0 (2010-09-26)
  • Add support for GNOME keyring. Now the password can be fetched from there.
0.1.0 (2010-09-12)
  • Initial release

Subscribe to package updates

Last updated Jan 5th, 2011

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.