{"id":13454454,"url":"https://github.com/mlomb/chat-analytics","last_synced_at":"2025-05-14T18:04:29.777Z","repository":{"id":51360939,"uuid":"389469410","full_name":"mlomb/chat-analytics","owner":"mlomb","description":"Generate interactive, beautiful and insightful chat analysis reports","archived":false,"fork":false,"pushed_at":"2025-03-28T18:53:58.000Z","size":14795,"stargazers_count":820,"open_issues_count":21,"forks_count":59,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-08T12:02:31.069Z","etag":null,"topics":["analysis","analytics","analyzer","app","chat","chat-analysis","chat-analyzer","cli","data-visualization","discord","telegram","whatsapp"],"latest_commit_sha":null,"homepage":"https://chatanalytics.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mlomb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-26T00:41:27.000Z","updated_at":"2025-04-07T22:50:44.000Z","dependencies_parsed_at":"2024-03-12T17:46:42.184Z","dependency_job_id":"2c60564f-d866-4da8-9d3f-bddbf0b93cda","html_url":"https://github.com/mlomb/chat-analytics","commit_stats":{"total_commits":799,"total_committers":8,"mean_commits":99.875,"dds":0.05006257822277849,"last_synced_commit":"e09cda3267c683ae44fdfc73aa718870a15554f2"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlomb%2Fchat-analytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlomb%2Fchat-analytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlomb%2Fchat-analytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlomb%2Fchat-analytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlomb","download_url":"https://codeload.github.com/mlomb/chat-analytics/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198453,"owners_count":22030964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","analytics","analyzer","app","chat","chat-analysis","chat-analyzer","cli","data-visualization","discord","telegram","whatsapp"],"created_at":"2024-07-31T08:00:54.202Z","updated_at":"2025-05-14T18:04:29.729Z","avatar_url":"https://github.com/mlomb.png","language":"TypeScript","readme":"\u003c!--suppress HtmlDeprecatedAttribute --\u003e\n\u003cdiv align=\"center\"\u003e\n\n![Logo-Dark](assets/images/logos/app_dark.svg#gh-dark-mode-only)\n![Logo-Light](assets/images/logos/app_light.svg#gh-light-mode-only)\n\n\u003ch3\u003eGenerate interactive, beautiful and insightful chat analysis reports\u003c/h3\u003e\n\n[Open App](https://chatanalytics.app) • [View Demo](https://chatanalytics.app/demo) • [Use CLI](#cli)\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/mlomb/chat-analytics/cicd.yml)\n[![codecov](https://codecov.io/gh/mlomb/chat-analytics/branch/main/graph/badge.svg)](https://codecov.io/gh/mlomb/chat-analytics)\n[![npm](https://img.shields.io/npm/v/chat-analytics)](https://www.npmjs.com/package/chat-analytics)\n[![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?logo=docker\u0026logoColor=white)](https://hub.docker.com/r/mlomb/chat-analytics)\n\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate/?hosted_button_id=NKHZJPKFJ34WJ)\n\n\u003c/div\u003e\n\n---\n\nA web app that takes chat exports from supported platforms and generates a single HTML file containing information, statistics and interactive graphs about them. Privacy is its main concern; chat data never leaves the device when generating reports. Selfhost with Docker!  \n\n|  💬 MESSAGES |  🅰️ LANGUAGE | 😃 EMOJI | 🔗 LINKS | 📞 CALLS | 🌀 INTERACTION | 💙 SENTIMENT | 📅 TIMELINE |\n|--|--|--|--|--|--|--|--|\n| \u003cimg src=\"https://user-images.githubusercontent.com/5845105/222576038-ebcff785-1d5a-4402-ac16-5f55fe7a1a8f.png\" alt=\"chat analytics messages tab\" width=\"200\"\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/5845105/222576383-91ec15d7-0a3b-44eb-96bb-24de3886d23f.png\" alt=\"chat analytics language tab\" width=\"200\"\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/5845105/222576596-dfeb7660-808f-4b1f-905c-340282f1ed8d.png\" alt=\"chat analytics emoji tab\" width=\"200\"\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/5845105/222576676-9eac93b7-59d2-4ab6-95d4-d65bb0d32207.png\" alt=\"chat analytics links tab\" width=\"200\"\u003e | \u003cimg src=\"https://github.com/mlomb/chat-analytics/assets/5845105/644c41ee-767b-4554-9bf5-9c79e7c37bce\" alt=\"chat analytics calls tab\" width=\"200\"\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/5845105/222576804-0d884987-6394-4435-97cd-06bbca84e391.png\" alt=\"chat analytics interaction tab\" width=\"200\"\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/5845105/222576869-f754d647-d915-4938-8acf-6c85f9315fee.png\" alt=\"chat analytics sentiment tab\" width=\"200\"\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/5845105/222576879-30461d12-2a3b-4814-a16c-b23eab263b6b.png\" alt=\"chat analytics timeline tab\" width=\"200\"\u003e |\n\n\n\nYou can interact with [the demo here](https://chatanalytics.app/demo)!\n\n## Chat platform support\n\nYou can generate reports from the following platforms:\n\n| Platform  | Formats supported                                                                | Text content | Edits \u0026 Replies  | Attachment Types                                                                    | Reactions        | Profile picture        | Mentions    | Calls |\n|-----------|----------------------------------------------------------------------------------|--------------|------------------|-------------------------------------------------------------------------------------|------------------|------------------------|-------------|-------|\n| Discord   | `json` from [DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter) | ✅            | ✅                | ✅                                                                                   | ✅                | ✅ (until link expires) | ✅ (as text) | ✅ |\n| Messenger | `json` from [Facebook DYI export](https://www.facebook.com/dyi)                  | ✅            | ❌                | ✅                                                                                   | ❌                | ❌                      | ✅ (as text) | ❌ |\n| Telegram  | `json` from [Telegram Desktop](https://desktop.telegram.org/)                    | ✅            | ✅                | ✅                                                                                   | ❌ (not provided) | ❌                      | ✅ (as text) | ✅ |\n| WhatsApp  | `txt` or `zip` exported from a phone                                             | ✅            | ❌ (not provided) | ✅\u003cstrong\u003e*\u003c/strong\u003e (if exported from iOS)\u003cbr\u003e🟦 (generic if exported from Android) | ❌ (not provided) | ❌                      | ✅ (as text) | ❌ |\n\n\u003cstrong\u003e*\u003c/strong\u003e not all languages are supported, check [WhatsApp.ts](/pipeline/parse/parsers/WhatsApp.ts).\n\nYou can't combine exports from different platforms.  \nThe contribution of [new platform parsers](/docs/PIPELINE.md#writing-a-new-parser) is always welcomed 🙂\n\n## Privacy \u0026 Analytics\n\nSince all chat data always stays in the browser, there is zero risk of someone reading your chats. Note that **the report HTML file contains sensitive information** (one may reconstruct message contents for every message), so share your reports with people you trust.\n\nThe site does not use cookies either and uses a self-hosted version of [Plausible](https://plausible.io). All events do not contain PII and the information is segmented (e.g. 1MB-10MB, etc.). Since I want full transparency, you can check the [site analytics here](https://p.chatanalytics.app/chatanalytics.app).\n\n## CLI\n\nYou can generate reports from the command line using `npx chat-analytics`:\n\n```\nUsage: chat-analytics -p \u003cplatform\u003e -i \u003cinput files\u003e\n\nOptions:\n      --help      Show help                                            [boolean]\n      --version   Show version number                                  [boolean]\n  -p, --platform  The platform to generate for\n   [string] [required] [choices: \"discord\", \"messenger\", \"telegram\", \"whatsapp\"]\n  -i, --inputs    The input file(s) to use (glob)             [array] [required]\n  -o, --output    The output HTML filename     [string] [default: \"report.html\"]\n      --demo      Mark the report as a demo           [boolean] [default: false]\n```\n\nFor example:\n\n```sh\nnpx chat-analytics -p discord -i \"exported/*.json\" -o report.html\n```\n\n## Docker Compose\n\nYou can self-host the app using the official docker image provided at https://hub.docker.com/r/mlomb/chat-analytics. Check out the [Dockerfile](/Dockerfile).\n\nExample `docker-compose.yaml`:\n\n```yaml\nservices:\n  chat-analytics:\n    image: mlomb/chat-analytics:latest\n    ports:\n      - 1234:80\n    restart: unless-stopped\n```\n\nYou can map the web interface port as required by changing the port mapping, internal port must be kept to 80.\n\n## Docs \u0026 Development\n\nYou can read [docs/README.md](/docs/README.md) for technical details, and [docs/DEV.md](/docs/DEV.md) for development instructions.  \nIn [docs/TODO.md](/docs/TODO.md) you can find ideas and pending stuff to be implemented.\n\n## Acknowledgements\n\n* [FastText](https://fasttext.cc/), a library by Facebook for efficient sentence classification. MIT licensed.\n* [lid.176.ftz model](https://fasttext.cc/docs/en/language-identification.html), provided by FastText developers for language identification. Distributed under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/).\n* [multilang-sentiment](https://github.com/marcellobarile/multilang-sentiment), for the translated AFINN database. MIT licensed.\n* Emoji sentiment data from the work of Kralj Novak, Petra; Smailović, Jasmina; Sluban, Borut and Mozetič, Igor, 2015, Emoji Sentiment Ranking 1.0, Slovenian language resource repository CLARIN.SI, http://hdl.handle.net/11356/1048. Licensed with [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).\n* [stopwords-iso](https://github.com/stopwords-iso/stopwords-iso) for a collection of stopwords in a variety of languages. MIT licensed.\n* All the libraries and tools that made this project possible 😀\n\n## License\n\nAGPLv3. See [LICENSE](LICENSE).\n","funding_links":["https://www.paypal.com/donate/?hosted_button_id=NKHZJPKFJ34WJ"],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlomb%2Fchat-analytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlomb%2Fchat-analytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlomb%2Fchat-analytics/lists"}