{
  "slug": "whatsapp-chat-analyzer",
  "name": "gizza-ai/whatsapp-chat-analyzer",
  "version": "0.1.0",
  "title": "WhatsApp Chat Analyzer — Stats, Busiest Times, Top Words & Emoji — gizza.ai",
  "description": "Paste an exported WhatsApp chat to count messages per person, busiest hours and days, and top words and emoji. Fully in-browser — nothing is uploaded.",
  "tags": [
    "whatsapp chat analyzer",
    "chat statistics",
    "message counter",
    "emoji frequency",
    "word frequency",
    "busiest hours",
    "who texts most",
    "chat export"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/whatsapp-chat-analyzer/",
    "markdown": "https://gizza.ai/tools/whatsapp-chat-analyzer/index.md",
    "descriptor": "https://gizza.ai/tools/whatsapp-chat-analyzer/tool.json",
    "deep_link_example": "https://gizza.ai/tools/whatsapp-chat-analyzer/?chat=%5B2024-01-05%2C%2021%3A07%3A33%5D%20Alice%3A%20Hey%20Bob%20%F0%9F%98%82%F0%9F%98%82%20how%20are%20you%3F%0A%5B2024-01-05%2C%2021%3A08%3A01%5D%20Bob%3A%20good%20thanks%21%20www.example.com%0A%5B2024-01-06%2C%2009%3A16%3A10%5D%20Bob%3A%20nice%20%F0%9F%98%82&date_format=auto&top=10&min_word_length=3&ignore_stopwords=true"
  },
  "cli": "gizza tool whatsapp-chat-analyzer \"[2024-01-05, 21:07:33] Alice: Hey Bob 😂😂 how are you?\n[2024-01-05, 21:08:01] Bob: good thanks! www.example.com\n[2024-01-06, 09:16:10] Bob: nice 😂\"",
  "tool": {
    "description": "Parse an exported WhatsApp chat (paste the _chat.txt from an iOS export or the .txt from an Android export) and return a plain-text report: total messages, participants, words, media and link counts; messages per person with each person's share; the busiest hours of the day and busiest days of the week; and the most-used words and emoji. Handles both the iOS bracketed format ([2024-01-05, 21:07:33] Alice: …) and the Android dash format (05/01/2024, 21:07 - Alice: …), folds multi-line messages, and skips system/notification lines. Options: date_format (auto/dmy/mdy/ymd for ambiguous dates), top (how many words/emoji to list), min_word_length, and ignore_stopwords. Fully local and deterministic — no AI model, nothing uploaded.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "chat": {
          "description": "The exported WhatsApp chat text. Open the exported _chat.txt (iOS) or the .txt export (Android) and paste its full contents.",
          "type": "string"
        },
        "date_format": {
          "default": "auto",
          "description": "How to read ambiguous numeric dates for the busiest-days breakdown: auto (detect), dmy (day/month/year), mdy (month/day/year), ymd (ISO year-month-day). Default auto.",
          "enum": [
            "auto",
            "dmy",
            "mdy",
            "ymd"
          ],
          "type": "string"
        },
        "ignore_stopwords": {
          "default": true,
          "description": "When true (default), drop common English filler words (the, and, you, lol, …) from the word ranking.",
          "type": "boolean"
        },
        "min_word_length": {
          "default": 3,
          "description": "Ignore words shorter than this many characters in the word ranking (1 = keep all). Default 3.",
          "maximum": 50,
          "minimum": 1,
          "type": "integer"
        },
        "top": {
          "default": 10,
          "description": "How many entries to list in the top-words and top-emoji rankings (0 = all). Default 10.",
          "maximum": 1000,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "chat"
      ],
      "type": "object"
    }
  }
}