open-source · privacy-first

comit

commit to the people who matter

A work-life-balance companion for WhatsApp — interaction scores, reply-debt tracking and gentle nudges, computed entirely on your device.

84 70 48

Akhil Tripathi · MIT licensed

The gap

Messaging apps track what's unread.
They say nothing about what's unreplied.

We drift, and we don't notice until it's a pattern.

What comit does

Interaction Score

A transparent 0–100 health score per contact — recency, frequency, reciprocity, responsiveness, who-starts.

Reply Debt

Who you owe a reply, and for how long. "Amma, 3 days."

Work-Life Balance

Work vs personal split, after-hours work, your late-night pingers.

Momentum

Who's heating up, who's going quiet — before it's too late.

Nudges

One ranked, plain-language to-do list that ties it all together.

It just runs

$ bun run demo

  comit  ·  6 conversations · 321 messages · 90-day window

  -- nudges -----------------------------------------
  !  Vinay (work) reached you after hours 44x recently.
    You owe Amma a reply - waiting 3 days.
  ~  Amma is cooling off: ~10.9/wk -> ~2.0/wk. Reach out?
    Your replies to Karan take ~15h on average.

  -- balance ----------------------------------------
  work vs personal   ######------------ 35% work
  after-hours work   66 messages (64% of work chatter)

…or open the offline dashboard with bun run web.

Transparent by design

No black boxes. The interaction score is a documented, tunable formula:

score = 100 × ( 0.30·recency
              + 0.25·frequency
              + 0.20·reciprocity
              + 0.15·responsiveness
              + 0.10·initiation )

Every constant is exported and overridable. Change one, re-run the tests, see exactly what moves.

The part that matters most

Your messages never leave your device.

100% offline no accounts no servers no telemetry zero runtime deps reads only, never writes your chats

comit makes no network requests at all — even the dashboard's fonts and charts are self-hosted. Auditable in an afternoon.

How it's built

  WhatsApp .txt export
          |
          v
   +--------------+   pure, deterministic   +------------------------+
   | DataSource   | ----------------------> |  analytics engine      |
   | export parser|   (no I/O, no clock)    |  score.debt.balance    |
   +--------------+                         |  .trends.nudges        |
          ^                                 +-----------+------------+
   future: live                          +--------------+-----------+
   Baileys adapter,                      v                          v
   same interface                    CLI report               Dashboard

One pure core. One I/O seam. A live data source could plug in without touching a line of analytics.

The engineering

0runtime dependencies
28passing tests
5composable analytics
2interfaces (CLI + web)

Where it goes

Built to be forked. Good first issues are tagged.

comit

commit to the people who matter

github.com/akhil29897/comit · MIT

A small daily commit — to your relationships, and your off-hours.

← → / space to navigate · F for fullscreen