whosthat: Minimal command-line Rolodex

I have a hard time keeping track of the cast of characters in my job. There’s so many projects, and so many people who work on each. A dozen times a day I have two questions: who’s that, and who works on XYZ.

I’ve been looking for a solution for this that works with how I work and think, and everything that I found suffered from one or more of the following problems:

  • Windows-only
  • Doesn’t sync between my machines
  • Data hosted somewhere that corporate security would frown on
  • Expensive

I finally decided that what I needed was something that I host myself, which syncs between my various machines, and which I can use from the command line, because that’s where I spend most of my time.

So, here it is: https://github.com/rbowen/whosthat

whosthat is written in Perl (because I like Perl), runs from the command line, and stores its files in simple text files (YAML) that I can sync between different machines via rsync or OwnCloud or Dropbox or whatever.

The two main functions are:

whosthat Rich

Returns details about records where the name or email address matches “Rich”

whoworkson openstack

Returns all records where the project or “team” matches “openstack”.

Behind the scenes, there are people records, project records, and team records.

People consist of a name, email address, notes, and what project or team they work on.

A project is, initially, an open source project, since that’s what I care about in my job, but there’s no reason it has to be. It’s any project that they work on.

And a team was, initially, the team or department within my company that someone is on, or the AWS Service they work on. But more generally, it could also be what company they work on, for tracking of people outside if my company.

Data is stored in YAML files. There’s also a addwho and editwho command for doing those things. But these just open the YAML file in your $EDITOR. It’s intentionally very simple. Could get more features over time, but this does what I need it to do.

There are a few things in this that are AWS specific. In particular, it assumes, by default, that email addresses  are @amazon.com and it links to our internal system for additional user info. I’ll try to make these configurable eventually, but right now that’s hard-coded.

If something like this is of interest to you, please do try it out. It’s Apache licensed and free. If you speak Perl, your patches are welcome. If you don’t, your ideas are welcome, but no guarantees that I’ll get anything done, since it’s very much a scratch-my-own-itch project.