chat-web-export
Export your own chats from WhatsApp Web
Every chat, as a readable .txt and a complete .json. It runs inside WhatsApp Web in your own browser. Nothing is uploaded, nothing is installed, and there is no account.
For educational and personal-archival purposes only. chat-web-export is an independent, non-commercial project, not affiliated with, endorsed by, or supported by WhatsApp LLC or Meta. It uses no official API and may stop working at any time. Scripting WhatsApp Web may be against WhatsApp's Terms of Service: use it only on your own account, at your own risk, and respect the privacy of the people you chat with. Read the full disclaimer.
-
Download the wa-js library
The exporter runs on wa-js, an independent open-source library by the WPPConnect team, also not affiliated with WhatsApp or Meta. The button always gives you the latest release, so compatibility fixes reach you without an update here.
Downloaded from the wa-js releases page on GitHub.
-
Open the console on WhatsApp Web
Go to web.whatsapp.com and sign in with your own account. Then open the developer console: ⌥⌘J on Mac, CtrlShiftJ on Windows and Linux. Chrome and Edge ask you to type
allow pastingthe first time you paste there. -
Copy the script and paste it in the console
export.js ·Loading…
Press Enter. A file picker opens: choose the
wppconnect-wa.jsyou downloaded. Then confirm that the account is yours. Progress is logged in the console, and two files are saved when it finishes. Keep the tab open and your phone online while it runs.
What you get
===== Maria — 2,431 messages ===== [2026-10-14 18:02:11] Maria: are you coming tonight? [2026-10-14 18:05:40] me: yes, 8ish [2026-10-14 18:05:52] Maria: <image omitted> the place ===== Family (group) — 11,820 messages ===== [2026-10-13 09:12:03] Dad: <voice note omitted>
The .json has the same messages with ids, timestamps, sender, type, quoted message id and forwarded flag per message, grouped by chat.
Questions
Why do I download a file and choose it?
The library is loaded from a file on your computer that you choose, so the script fetches nothing from other servers and you can inspect exactly what runs. It also means you always run the newest wa-js release, which keeps the exporter compatible as WhatsApp Web changes.
Where does my data go?
Nowhere. The script runs in the WhatsApp Web tab, reads only what your signed-in account can already see, and saves two files to your computer. It does not bypass sign-in, encryption or any access control. It also turns off the anonymous usage ping that wa-js sends by default. You can read every line of it on GitHub.
Does it export photos, videos and voice notes?
No, only text. Media shows up as a placeholder like <image omitted> with the caption or file name when there is one.
How far back does it go?
WhatsApp Web only keeps recent history locally. With "fetch older history from your phone" on, the script asks your phone for older batches, chat by chat, the same way the "get older messages" button does. That needs your phone online and takes longer on big chats. Use the "last N days" option for a quick partial export.
Is this allowed?
This is an unofficial, educational, non-commercial project. It reads data WhatsApp Web already holds for your own account and uses no official API. WhatsApp's Terms of Service restrict automated or unofficial use of the service, so it is on you to review them and decide. The authors accept no liability for data loss, account restrictions, or anything else that follows from using it. Only export your own conversations, and treat other people's messages as their personal data.
Nothing happens, or there is an error
Make sure you are logged in (not on the QR screen), that you picked the real wppconnect-wa.js, and that you are on the latest release. If WhatsApp Web changed something wa-js does not handle yet, check the wa-js releases: a fix usually lands within days. Then open an issue with the console output, after removing any names, numbers or messages from it.
Privacy of this page
This page is a static site hosted on GitHub Pages. It sets no cookies, has no analytics and makes no requests to other servers. GitHub receives your IP address when it serves the page, as described in the GitHub Privacy Statement. The download button takes you to GitHub.