Skip to content
A command line tool that reminds you to contact people
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


keepintouch is a simple program that reminds you to contact people, primarily for the following reasons:

  • Pleasure/virtue: friends, family, mentors, etc.
  • Utility: Social networking

Developed by dbulysse (Benjamin Pence)


When keepintouch is run on the data file ( in this example), it will schedule the entries from the data file for you, with the contacts you should contact soon first.

$ keepintouch
Paul Allen
Patrick Bateman
Huey, Louie, Dewie

When keepintouch is run with the argument contact and a person's name, it will change the last contacted date for that person to today:

$ keepintouch contact Paul Allen

$ keepintouch
Patrick Bateman
Huey, Louie, Dewie

Data Format

Currently, keepintouch expects the user to supply all the people you wish to contact in the following file format:

last contacted

last contacted


where each entry has

  • interval: generally how often (in days) you want to communicate with this person/these people
  • last contacted: the day this person/these people were last contacted in the year-month-day format YYYY/MM/DD
  • name(s): the person/people you want to contact, one per line. Multiple names are allowed because often times one regularly contacts a group/family that only requires a single communique or each person in a group at the same time

A sample data file:

Paul Allen

Patrick Bateman



Weight Scheduler

For each entry in the data file, keepintouch determines a score to sort the entries by:

today - (last contacted + (interval +/- (0% to 25%)))

where the +/- (0% to 25%) added or subtracted is randomized each time you run keepintouch. Entries with the greatest score will be listed to you first and will tend to be those people that you have not contacted in a while and you wish to contact more often. You don't have to use the program on a regular basis.

You can use the Weight Scheduler with either of these commands:

$ keepintouch schedule weight
$ keepintouch schedule weight 0.25

Note that with the second command, you can specify how much of the score is left up to chance (0.0 <= weight <= 1.0).

Backlog Scheduler

The Backlog Scheduler is the default scheduler. The Backlog Scheduler will sort the entries by:

today - (last contacted + interval)

Every entry that is due in the future will not be shown. You can use the Backlog Scheduler with these commands:

$ keepintouch
$ keepintouch schedule
$ keepintouch schedule backlog

Random Scheduler

The Random scheduler sorts the entries randomly and is not terribly useful. You can use the Random Scheduler with this command:

$ keepintouch schedule random
You can’t perform that action at this time.