Big Brother

BBDB is a rolodex-like database program for GNU Emacs which is tightly integrated with the Emacs mail and news readers (GNUS, VM, MH-E, and RMAIL.)

If you don't read mail and/or news with Emacs, this is likely of no interest to you.

The main feature of BBDB is that it sits in the background and ``notices'' things about whatever messages you read (whether those messages are mail or news.) A window displaying the address-book entry corresponding to the sender of the current message is always on the screen, unobtrusively. So as you are reading a message, any additional annotations you have made (including ones which occurred automatically) will be readily visible as well.

For example, BBDB can automatically keep track of what other topics the sender has corresponded with you about; when you last read a message from the sender; what mailing lists their messages came through; and any other details or automatic annotations you care to add. It also does a good job of noting when someone's email address has changed.

In practice, you never add an entry to your address book by hand; BBDB does it for you. What you do is instruct BBDB when and how to annotate things: ``when you see a message like this, annotate the sender like this.''

The insidious part of its name comes from the fact that it sits silently by and watches everything that you do; and from the fact that, after a while, most people find it so very useful that they are incapable of tying their shoes without it. The big brother part of its name comes from the fact that, eventually, it knows all. BBDB is offline memory. It becomes part of your brain.

The drawback of BBDB is that it is very much hacker-ware. Customizing it for your own environment will be a somewhat intimidating task if you aren't fairly familiar with Emacs Lisp.

I (jwz) created BBDB in 1991, and maintained it through 1995 or so. The current maintainer is Ronan Waide. For recent updates, you should check

The last release that I put together myself was 1.51. Ronan's versions are numbered 2.x.

BBDB embodies that property known as ``intertwingularity.'' If you're interested in this sort of thing, you might want to read my design for a program I've called Intertwingle. Intertwingle has yet to actually be implemented, but the ideas outlined in that design are largely derived from my experiences with BBDB, so you can think of it as one of BBDB's hypothetical descendants.

Jamie Zawinski <>
consume -- be silent -- die