@@ -6,10 +6,10 @@ Transform chat exports into geocoded activity suggestions.
66
77## Overview
88
9- ChatToMap extracts "things to do" from WhatsApp, iMessage, Telegram, and LINE exports - restaurants to try, places to visit, trips to take. It finds suggestions buried in years of chat history and puts them on a map.
9+ ChatToMap extracts "things to do" from WhatsApp, iMessage, Telegram, Facebook Messenger, and LINE exports - restaurants to try, places to visit, trips to take. It finds suggestions buried in years of chat history and puts them on a map.
1010
1111** Features:**
12- - Parse WhatsApp (iOS/Android), iMessage, Telegram Desktop JSON, and LINE text exports
12+ - Parse WhatsApp (iOS/Android), iMessage, Telegram Desktop JSON, Facebook Messenger JSON, and LINE text exports
1313- Extract suggestions using multilingual regex patterns, embeddings, and URL detection
1414- Classify with AI (activity vs errand, mappable vs general)
1515- Scrape metadata from TikTok and YouTube links
@@ -46,6 +46,9 @@ chat-to-map analyze <input>
4646# Telegram Desktop exports
4747chat-to-map analyze " /path/to/ChatExport_2026-04-26/result.json"
4848
49+ # Facebook Messenger exports (one chat JSON at a time, extracted from messages.zip)
50+ chat-to-map analyze " /path/to/messages/Friend Name_15.json"
51+
4952# LINE text exports
5053chat-to-map analyze " /path/to/[LINE] Chat with Friends.txt"
5154
@@ -235,12 +238,121 @@ if (result.ok) {
235238| Map | Interactive Leaflet.js HTML |
236239| PDF | Printable report with summary |
237240
238- ## How to Export WhatsApp
241+ ## How to Export Your Chats
242+
243+ Each messaging app has its own export flow. ChatToMap only needs the message ** text** —
244+ always pick the "without media" option when offered, both because ChatToMap doesn't use
245+ photos/videos and because it keeps the export much smaller.
246+
247+ ### WhatsApp
248+
249+ ** iPhone / iPad**
250+ 1 . Open WhatsApp and tap the chat you want to analyze.
251+ 2 . Tap the chat name at the top to open chat info.
252+ 3 . Scroll down and tap ** Export Chat** .
253+ 4 . Choose ** Without Media** .
254+ 5 . Save or share the resulting ` .zip ` file.
255+
256+ ** Android**
257+ 1 . Open the chat in WhatsApp.
258+ 2 . Tap the ⋮ menu in the top-right.
259+ 3 . Tap ** More** → ** Export chat** .
260+ 4 . Choose ** Without media** .
261+ 5 . Save or share the resulting ` .zip ` file.
262+
263+ ** Desktop (macOS / Windows)**
264+ 1 . Open WhatsApp Desktop and right-click the chat.
265+ 2 . Choose ** Export chat** from the context menu.
266+ 3 . Choose ** Without media** .
267+ 4 . The ` .zip ` file is saved to your Downloads folder.
268+
269+ ``` bash
270+ chat-to-map analyze " WhatsApp Chat - Friends.zip"
271+ ```
272+
273+ ### iMessage
274+
275+ iMessage has no built-in export. The cleanest path is the open-source
276+ [ ` imessage-exporter ` ] ( https://github.com/ReagentX/imessage-exporter ) tool, which reads
277+ your local iMessage database (or an iPhone backup) and writes one ` .txt ` file per
278+ conversation that ChatToMap can parse directly.
279+
280+ 1 . Install ` imessage-exporter ` via Homebrew or Cargo:
281+ ``` bash
282+ brew install imessage-exporter
283+ # or
284+ cargo install imessage-exporter
285+ ```
286+ 2 . Grant your terminal ** Full Disk Access** in System Settings → Privacy & Security so it
287+ can read ` ~/Library/Messages/chat.db ` .
288+ 3 . Run the exporter in ` txt ` format:
289+ ``` bash
290+ imessage-exporter -f txt -o ~ /imessage_export
291+ ```
292+ On macOS this reads the local database. To export from an iPhone backup instead:
293+ ``` bash
294+ imessage-exporter -f txt -p ~ /iphone_backup_latest -a iOS -o ~ /imessage_export
295+ ```
296+ 4 . The output folder contains one ` .txt ` file per chat, named after the contact or group.
297+ Pass any one of those files to ChatToMap:
298+
299+ ``` bash
300+ chat-to-map analyze " ~/imessage_export/Friend Name.txt"
301+ ```
302+
303+ Your messages never leave your computer — both ` imessage-exporter ` and ` chat-to-map ` run
304+ locally.
305+
306+ ### Telegram
307+
308+ Telegram chat exports are ** only available from Telegram Desktop** . Mobile Telegram apps
309+ (iOS / Android) cannot export chat history. On macOS the App Store version is called
310+ ** Telegram Lite** — install from < https://desktop.telegram.org/ > , * not* the older
311+ ` macos.telegram.org ` build, which doesn't support export.
239312
240- 1 . Open WhatsApp chat
241- 2 . Tap ⋮ → More → Export chat
242- 3 . Choose "Without media"
243- 4 . Save the .zip file
313+ 1 . Open Telegram Desktop and sign in to the account that has the chat.
314+ 2 . Open the private chat, group, or channel you want to export.
315+ 3 . Use the chat menu → ** Export chat history** .
316+ 4 . Choose the ** machine-readable JSON** format when prompted.
317+ 5 . Telegram writes a ` result.json ` file and any selected media into an export folder. Keep
318+ the folder intact or zip it up.
319+
320+ ``` bash
321+ chat-to-map analyze " /path/to/ChatExport_2026-04-26/result.json"
322+ # or a zipped folder
323+ chat-to-map analyze " telegram-export.zip"
324+ ```
325+
326+ ### Facebook Messenger
327+
328+ Messenger exports ` messages.zip ` , which contains every conversation as separate JSON files.
329+ Extract it locally and pass one chat at a time.
330+
331+ 1 . On a computer, visit < https://www.messenger.com/secure_storage/dyi > .
332+ 2 . ** Uncheck "Media"** — ChatToMap only uses message text and leaving it on makes the
333+ export 10× larger.
334+ 3 . Pick your date range (e.g. ** All time** ).
335+ 4 . Click ** Download file** and wait. Messenger needs to assemble the archive — this can
336+ take ** 5–10 minutes** for large accounts.
337+ 5 . When the file is ready, save ` messages.zip ` to your computer.
338+ 6 . Double-click ` messages.zip ` to extract it. You'll see one ` .json ` file per conversation,
339+ named like ` Friend Name_15.json ` .
340+
341+ ``` bash
342+ chat-to-map analyze " messages/Friend Name_15.json"
343+ ```
344+
345+ ### LINE
346+
347+ 1 . In LINE, open the chat you want to analyze.
348+ 2 . Use ** Settings → Export chat history** for that conversation.
349+ 3 . Save the resulting ` .txt ` file (or the folder/zip if LINE includes media).
350+ 4 . Don't edit the exported text before passing it in — the parser reads LINE's original
351+ format.
352+
353+ ``` bash
354+ chat-to-map analyze " [LINE] Chat with Friends.txt"
355+ ```
244356
245357## Supported Languages
246358
0 commit comments