How to open the _chat.txt file from a WhatsApp export | ThreadRecap
When you export a WhatsApp conversation, the result is a file called `_chat.txt` sitting inside a ZIP archive alongside any media you chose to include. Opening it sounds trivial, but a busy group chat can produce a file with tens of thousands of lines, mixed encoding signals, and cryptic attachment placeholders that make raw reading slow and error-prone. This guide explains exactly what is inside that file, what can go wrong when you open it, and when it makes more sense to let a tool do the reading for you.
What _chat.txt actually contains
WhatsApp stores chat logs in plain text format. Every line that represents a user message follows the same three-part pattern:
```
[DD/MM/YYYY, HH:MM:SS] Sender Name: message body
```
The bracketed section is the timestamp, formatted according to the device locale at the time of export, so you may see `MM/DD/YYYY` on US-locale devices instead. After the closing bracket comes a space, the sender's display name as it appeared in their contacts at export time, a colon, and then the message text.
Beyond user messages, the file contains two other line types:
System event lines. These record group changes such as a participant joining, leaving, or a group name being updated. They carry a timestamp but no sender name, and the phrasing is generated by WhatsApp itself.
Multi-line message continuations. If a sender typed a message with line breaks, the continuation lines appear without a timestamp header. Any parser or reader needs to account for this or it will miscount messages.
The file contains every message and timestamp from the conversation. Nothing is summarised or omitted on WhatsApp's side, which is what makes it useful as a raw record but also what makes it hard to read manually for anything longer than a short personal chat.
WhatsApp uses UTF-8 encoding for `_chat.txt` exports. UTF-8 can represent every Unicode character, so emoji, Arabic, Chinese, and accented Latin characters all appear correctly in a properly configured editor. The problem arises with the Byte Order Mark (BOM).
A BOM is a three-byte sequence, `0xEF 0xBB 0xBF`, that may appear at the very start of a UTF-8 file. The Unicode standard permits its use but does not require or recommend it. Its only purpose is to signal that the stream is UTF-8 encoded. In practice, some WhatsApp versions on some devices prepend the BOM and others do not.
Editors that do not recognise the BOM render it as a visible character, often a small box or a question mark, at the top of the file. This is cosmetic but it can also break scripts or parsers that try to match the first line against a timestamp pattern, because the BOM bytes precede the opening bracket.
Fix: Open the file in VS Code, Notepad++, or BBEdit. Each of these editors detects and displays the encoding in the status bar. In Notepad++ you can re-save as "UTF-8 without BOM" from the Encoding menu. In VS Code, click the encoding label in the bottom-right corner and choose "Save with encoding", then select UTF-8.
Windows line endings
If the export was created on an Android device and you open it on a Mac or Linux system using a basic viewer, you may see `^M` characters at the end of lines or find that the entire file appears as one long line. This happens when the file uses Windows-style CRLF line endings (`\r\n`) and the viewer expects Unix LF (`\n`) only. VS Code, BBEdit, and Notepad++ all normalise line endings automatically and display which convention the file uses in the status bar.
Attachment markers and how to interpret them
When you export a chat and choose not to include media, WhatsApp inserts a placeholder into the text wherever a photo, video, voice note, sticker, or document was sent. The most common form is:
```
[15/03/2024, 09:41:22] Alice: <Media omitted>
```
On some device locales the placeholder reads differently, for example as the filename of the attachment followed by `(file attached)`. When media is included in the export, the placeholder is replaced by the filename:
The `PTT-` prefix identifies a push-to-talk voice note. `IMG-` and `VID-` prefixes identify photos and videos respectively. The files themselves sit in the same ZIP archive as `_chat.txt`.
A few things to keep in mind when reading attachment lines manually:
Deleted messages appear as a system line noting that a message was deleted, not as `<Media omitted>`.
Missed calls appear as system lines too, with no media placeholder.
Stickers are treated as media and produce a placeholder or filename just like images.
Documents use the original filename, which can contain spaces and special characters that may confuse a naive line parser.
If you are building a timeline of events from the raw file, treat every `<Media omitted>` line as a gap in the record. The timestamp and sender are still present, so you know something was sent and by whom, but the content is absent.
Best apps to read _chat.txt raw
No single editor is right for every situation. The choice depends on your operating system, the file size, and how much you need to search or filter.
Visual Studio Code (Windows, macOS, Linux, free)
VS Code is the most practical general-purpose choice. It detects UTF-8 with or without BOM, displays line endings in the status bar, and handles files of several hundred megabytes without complaint. The built-in search (`Ctrl+F` / `Cmd+F`) supports regular expressions, which is useful for filtering by sender name or date range. Install the "Rainbow CSV" extension if you want column-style highlighting, though `_chat.txt` is not CSV, so the benefit is limited.
Notepad++ (Windows, free)
Notepad++ is lightweight and launches faster than VS Code for quick inspections. Its Encoding menu makes BOM removal a one-click operation. The multi-document interface is handy if you are comparing two exports side by side. Word-wrap mode (`View > Word wrap`) prevents long messages from running off-screen.
BBEdit (macOS, free tier available)
BBEdit has handled large text files reliably for decades. Its "Text Encoding" panel in the open dialog lets you force a specific encoding if auto-detection fails. The grep-based search and the ability to open files directly from a ZIP are practical for quick checks.
EmEditor (Windows, paid with free tier)
EmEditor is purpose-built for very large files and can edit files larger than 4 GB even on 32-bit Windows. If you are dealing with a multi-year group chat export that has grown unusually large, EmEditor is worth considering.
UltraEdit (Windows, macOS, Linux, paid)
UltraEdit is designed as an editor and viewer for large files and can open, view, edit, and save text files in excess of 4 GB. Like EmEditor, it is overkill for most `_chat.txt` files but becomes relevant at extreme scale.
For most users, VS Code or Notepad++ covers every practical need.
Why uploading to ThreadRecap is faster than reading by hand
Reading `_chat.txt` manually works for a short two-person conversation. It becomes impractical once you have a group chat running over months, a dispute where you need to locate specific messages quickly, or a meeting thread where action items are scattered across hundreds of lines.
ThreadRecap's WhatsApp chat analyser accepts the ZIP file directly. You do not need to extract `_chat.txt` first or strip the BOM. The upload workflow starts on your device: you export the chat in WhatsApp, which produces a ZIP you own before anything is transmitted. Photos, videos, and documents never leave your device. Chat text and voice note audio are stored encrypted in your account, and you can delete them at any time from the dashboard.
Once uploaded, ThreadRecap produces structured output that raw reading cannot match:
Meeting Recap and Action Items: key decisions and assigned tasks extracted from the thread.
Timeline view: every message in chronological order with sender attribution, searchable by keyword or date.
Voice note transcription: every `PTT-` file is transcribed using OpenAI Whisper, which achieves 2.7% WER on LibriSpeech and 8-12% on real-world audio. A long voice note that would take minutes to play back becomes a searchable paragraph of text.
Evidence-ready export: structured output formatted for legal, dispute, or compliance use, with timestamps and sender names preserved exactly as they appear in the source file.
Conflict Resolution and Relationship Insights: pattern-level analysis across the full thread that is simply not visible when scrolling line by line.
ThreadRecap handles exports containing 60,000+ messages and ZIP files up to 2 GB, so the file size limits that can slow down a text editor are not a concern.
If you are preparing an export specifically for analysis, the guide on exporting a WhatsApp chat for analysis covers how to choose between including and excluding media, and what each choice means for the output you get.
When raw reading still makes sense
There are cases where opening `_chat.txt` directly is the right call. If you need to verify a single timestamp, check a specific sender name as it was recorded at export time, or confirm that an export completed without truncation, a text editor gives you an unmediated view of the source data. For anything requiring cross-referencing, searching, or summarising across more than a few dozen messages, the manual approach is slower and more error-prone than structured analysis.
The `_chat.txt` file is a reliable, portable record of a WhatsApp conversation, but its value depends on being able to read it correctly. Choosing an editor that handles UTF-8 BOM and line endings properly removes the most common friction. Understanding attachment markers prevents misreading gaps in the record. And for any task beyond a quick spot-check, structured analysis tools save significant time while keeping the underlying evidence intact.
How to open the _chat.txt file from a WhatsApp export
Learn how to open _chat.txt from a WhatsApp export, fix encoding and line-ending issues, decode attachment markers, and choose the right text editor for large files.
May 3, 20267 min read
Ready to analyze your WhatsApp chat?
Upload your export and get summaries, insights, and voice note transcriptions in minutes.