ToiletTracker

CI Gem Version License Ruby

Track bowel movements through WhatsApp messages using simple emoji commands. Export your WhatsApp chat, run it through ToiletTracker, and get structured data with timezone support.

Features

  • No app needed - Use WhatsApp, which you already have
  • Travel-friendly - Full timezone support for globetrotters
  • Flexible input - Log now, log past events, add metadata
  • Multiple exports - JSON, CSV, or formatted tables
  • Privacy first - Your data stays on your device

Why?

Tracking health data shouldn't require a dedicated app. WhatsApp is already on your phone, always synced, and easy to use. Just send a 💩 to a chat (or yourself) whenever nature calls, and this gem turns those messages into analyzable data.

Quick Start

gem install toilet_tracker

Export your WhatsApp chat and run:

toilet_tracker parse whatsapp_export.zip

How It Works

Send emoji commands in any WhatsApp chat:

Command What it does
💩 Log an event right now
💩 14:30 Log an event at a specific time
🚽 +2 Set your timezone offset to +2 hours
🚽 Europe/Rome Set timezone by name

See the full message specification for all supported formats.

Timezone Support

Traveling? Just update your timezone:

🚽 +5:30          # Flying to India
💩                 # Logged with +5:30 offset
🚽 Europe/Rome    # Back home
💩                 # Logged with Rome timezone

Metadata

Add extra context with additional emojis:

💩 🩸              # Flag something unusual
💩 🧱              # Note the consistency
💩  🍕           # Track what you ate

Output Formats

# Table (default)
toilet_tracker parse chat.zip

# JSON for further processing
toilet_tracker parse --format json chat.zip

# CSV for spreadsheets
toilet_tracker parse --format csv chat.zip

Ruby API

require 'toilet_tracker'

# Parse a WhatsApp export
results = ToiletTracker.parse_file("chat.txt")

# Or parse individual messages
result = ToiletTracker.parse_line("[01/01/2025, 12:00:00] Me: 💩")

Requirements

  • Ruby 3.4+

Development

bin/setup          # Install dependencies
bundle exec rspec  # Run tests

License

MIT - see LICENSE.txt