Java script webapp that analyzes your WhatsApp Chat history locally on your machine.
Switch branches/tags
Nothing to show
Clone or download
Latest commit de52def Oct 28, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
css support to remove stopwords in a lot of languages (30+) May 15, 2018
img Logo Design (#31) May 22, 2018
js escape html (#32) Oct 2, 2018
src added side php mailer May 2, 2018
vendor removed unecessary files May 4, 2018
.gitignore Update .gitignore May 16, 2018
CREDIT added removeal of Stopwords May 15, 2018
LICENSE updated LINCENSE May 4, 2018 Update Oct 27, 2018
favicon.ico test Apr 25, 2018
index.html workaround to get rid of chat moderator bot May 21, 2018


A JavaScript application to analyze WhatsApp chat history locally in your browser.

☕️ Caffeine fund ☕️

If you found this tool useful or fun, please consider buying me a coffee 😀



  • Clone the repository git clone
  • Open index.html in the root folder.
  • Follow instructions on the web page.

Alternatively you can use the official hosted version of this code.

What happens to my chat data?

No chat data is transferred to any remote server, all analysis is performed locally on your device

The application works completly offline once the page has loaded. You can turn off your internet before loading your data file if you are particularly concerned. You can also take a look at the source code and give it an audit.

Reporting Issues

Please open a new Github Issue if you find any issues or have suggestions/improvements for the project.

Please also supply your data format (e.g. [07.09.17, 6:44:16 PM] NAME: message) and Language/Region setting of our phone if you are having a specific problem with data not loading correctly.

Have a great idea for a new graph?

Head over to planned features and add your idea if it's missing!

Wanna help making this better?

Cheers! You are very welcome! Just submit a pull request. The goal of this tool is to automize the parsing as much as possible.

Add your language identifier for audio/video/pictures

Please see the header of analyze.js. There you can add your identifiers.

Markov Chain

To generate text that sounds like you check here:

How the data is parsed & how you can build on that

The chat data is parsed via regex and splitted into it's parts. There are two variables that hold the data.

structArray: Formatted line data in the form of a struct with the keys: name date time message

  • name: "Name Surname"
  • date: "YYYY-MM-DD"
  • time: "HH:MM:SS"
  • message: text

each key represents an array, the index represents the line number e.g.[0] is the date of the first line


Array of structs with the keys:

  • name: "Name Surname"
  • date: "YYYY-MM-DD"
  • time: "HH:MM:SS"
  • message: text

For every person there is one struct, same format as above, the index represents messageNumber of name.