How to Export Discord Chats: Save the Conversation, Not Just the Screenshots
That brilliant troubleshooting thread. The old gaming group. A conversation you would hate to lose. Saving Discord messages is possible, but the difference between a useful archive and a folder full of disappointment is knowing what each tool actually captures.

Somewhere in your Discord history is the answer to a problem you have already solved once. Perhaps somebody explained how to coax an elderly console into working with a modern television. Perhaps your gaming group planned something more ambitious than arguing about the next game. Perhaps it is simply a conversation worth keeping.
Now you would like to save it. Not bookmark it. Not take 147 screenshots. Just put the whole thing in a file. This is where an apparently simple request becomes surprisingly awkward. Discord’s official download is a personal-data package, while third-party tools offer conversation exports. Those are different things, with different limitations. Choosing the right one starts with deciding whether you need your own messages or the complete conversation you can access.
The official download: your words, not everybody else’s
The most straightforward place to begin is Discord’s official data request. On desktop or in a browser, open User Settings → Data & Privacy → Request Data, choose the information you need and submit the request. Older instructions pointing to “Privacy & Safety” no longer match the current help documentation.
Discord says preparation can take up to 30 days, with a download link sent to the email address associated with your account when you requested it. Your email must be verified. Do not disable or delete the account while waiting: doing so cancels the request.
The important limitation is what arrives. Discord’s current documentation describes JSON files containing messages you sent, organised by conversation, with message IDs, timestamps, text and attachment links. It is not a complete transcript containing everyone else’s replies. Manually deleted messages are not included, and the download link remains active for 30 days.
For reviewing your own activity, that is useful. For preserving a conversation, it can feel like finding a telephone recording with only your microphone switched on. All your enthusiastic “yes, exactly!” messages survive; what you were agreeing with does not.

DiscordChatExporter: the serious toolbox
For a more conventional chat archive, DiscordChatExporter by Tyrrrz is a substantial open-source option. It supports direct messages, group conversations and server channels, including Discord-style formatting and many rich-media features. Crucially, its own project page warns that automating a personal account can result in a ban. This is not an official Discord export utility.
The project provides a graphical desktop application and a command-line version, with builds for Windows, macOS and Linux. Start at the official releases page, rather than a download site borrowing its name. The graphical version is the approachable choice; the command-line edition offers more control for advanced workflows.
At the time of writing, the current stable release is 2.48, whose changes include rendering polls in HTML exports. That is a useful reminder that Discord conversations contain more than plain text, and that keeping the exporter current matters. But before choosing a format, there is something more important to understand.
The awkward bit is not the export. It is account access.
DiscordChatExporter’s documented authentication method uses a token, rather than a normal email-and-password login screen. A token is a sensitive account credential, not a harmless reference number. The project documentation explicitly says to treat it like a password.
There is also a concrete security detail worth knowing: the project’s troubleshooting guide says the graphical application saves the token in a plain-text file unless persistence is disabled. Avoid retaining it unnecessarily, and do not share an application folder or troubleshooting bundle without checking for credentials.
Then there is Discord’s policy. Describing automated personal-account tools as merely a “grey area” understates the position. Discord explicitly prohibits automating normal user accounts outside its authorised OAuth2/bot framework, and says this can lead to account termination.
That distinction matters. A tool can be useful, open-source and technically capable while still exposing its user to an account-policy risk. Popularity is not permission, and “I am only making a backup” is not an exemption stated in Discord’s policy.
Server owners have a different technical option
DiscordChatExporter also supports bot tokens. For a server you administer, the project documents creating an application through the Discord Developer Portal, inviting its bot to the server and using that bot’s credentials. This avoids automating your normal personal account. The project’s bot setup guide explains the process.
The bot needs access to the relevant channels and permission to read message history. Ordinary server-message content also requires the appropriate Message Content Intent configuration; without it, content fields can be empty. A server bot does not inherit access to private conversations between your personal account and other people.
However, a bot is not a universal permission slip. Discord’s Developer Policy restricts how API data may be collected and used, and explicitly prohibits mining or scraping Discord data. Bot authentication avoids the specific personal-account automation problem; it does not automatically make every bulk-archiving scheme compliant.
Choose an archive you will actually enjoy opening
Once the access question is settled, the documented desktop workflow is familiar: authenticate, select the channel or conversation, choose the output folder and format, then export. Date filtering and output partitioning let you avoid turning years of conversation into one enormous file. The graphical-interface guide covers these controls.
For most readers, HTML is the sensible starting point. It produces a browser-readable conversation with a Discord-like presentation, rather than a wall of technical records. Plain text is the lightweight alternative. CSV suits spreadsheet work, while JSON is better suited to structured processing and applications that understand the exported data.
Think about how you expect to use the archive. Revisiting a long-running gaming group calls for something readable. Comparing dates and authors calls for structured data. Keeping instructions you may need during an internet outage calls for a local copy that does not quietly depend on remote images.
For an important conversation, keeping a readable HTML export alongside a separate structured export is a reasonable approach. Give each a descriptive name and record the export date. “Console repair discussion, September 2026” will age considerably better than “final-backup-new2”.
The missing-picture trap
Here is the mistake that can ruin an otherwise successful archive: saving a link to an attachment is not the same as saving the attachment. Discord documents that uploaded attachments use signed addresses with preset expiry times. Discord refreshes these links inside its own client, but an address preserved in an old export should not be treated as permanent storage. The message can remain perfectly readable while its illustration, photograph or downloadable file becomes inaccessible through that saved link.

DiscordChatExporter provides a Download assets option to save referenced media locally. The resulting assets folder must stay with the exported chat. Its Reuse assets option can avoid downloading files again when they are already available locally. This is particularly important for technical communities. A conversation saying “connect it here” is not much of an archive when “here” was a photograph that has disappeared.
After exporting, try opening the archive without an internet connection. Check several images, attachments and older messages, not just the first screen. Move or back up the complete export folder rather than selecting the attractive HTML file and leaving everything else behind. Treat the offline check as a useful test, not proof that every externally linked website has also been preserved.
Browser extensions: fewer steps, more homework
A browser extension offers an appealing alternative to a separate desktop application. Two examples are Discord Chat Export Tool and Discord Chat Exporter – DiscordKit. These are separate products from Tyrrrz’s project, despite the very similar names.
Discord Chat Export Tool advertises exporting channel and private-conversation messages, together with attachments such as images, video and other files. Its advertised workflow is to open the conversation in Discord’s web interface, launch the extension and export. The store listing identifies in-app purchases, so do not assume installing it for free means every export feature is unrestricted.
DiscordKit explicitly advertises HTML, CSV, JSON and TXT output, date filtering and batch downloads. Its listing describes a free tier for evaluation and light use, with premium access for larger-volume exports. Check the current limits before planning a substantial archive around it.
Both listings describe local processing. Those are developer statements, not independent security findings. There is also a useful distinction between processing chats locally and sending no information whatsoever: the privacy policy linked by Discord Chat Export Tool allows limited anonymised diagnostic reports from its extensions, while saying these exclude identity, browsing history and visited-page content.
Before installing either, inspect the requested permissions, privacy policy, developer identity and payment conditions. Start with a small, non-sensitive export. A convenient interface is welcome; it should not be the only thing you evaluate. And remember: putting a feature inside a browser extension does not create an exception to Discord’s rules on personal-account automation.
“Export completed” does not always mean “everything saved”
Even a successful-looking result deserves inspection.
Threads need attention. DiscordChatExporter’s command-line documentation says threads are excluded from server exports by default. Its thread option distinguishes between none, active threads, and all accessible active and archived threads. Do not assume exporting the main channel automatically captures every side discussion.
Date boundaries can trim more than expected. The graphical guide warns that dates default to midnight. Selecting an end boundary of 18 September, for example, does not include that entire day. Check the boundary and displayed timezone against the period you intended to preserve.
Large files are not automatically better files. The command-line tool supports splitting output by message count or file size. For a busy community, manageable chunks may be more useful than a single export that is awkward to open and navigate.
An exporter is not a recovery service or a restore button. DiscordChatExporter cannot retrieve messages already deleted from Discord, recreate an exported conversation inside Discord, or append new messages to an existing export. Treat its output as a dated snapshot, not a continuously synchronised backup.
A sensible final check is to compare the oldest and newest messages against the intended range, inspect some replies and attachments, and confirm that the expected channels and threads are present. Keep a short note of what you deliberately excluded. Future you should not have to become a detective to understand past you’s filing system.
Keep the conversation without creating a new privacy problem
An archive may be valuable precisely because it contains things people did not intend to publish. Treat private chat exports as private documents.
For a community archive, agree on the scope and audience before collecting material. For work-related conversations, follow the organisation’s rules rather than quietly building a personal copy. Avoid uploading an entire export to an unfamiliar converter merely to make it look prettier.
The useful principle is simple: save what you genuinely need, restrict who receives it, and keep account credentials out of the archive.
The verdict
There is no single option that wins every category.
Discord’s own data request is the place to start for a record of your contributions, but it does not deliver everyone else’s side of the conversation. DiscordChatExporter offers much greater control over conversation archives and local media, with significant authentication and policy considerations. Browser extensions offer a more convenient-looking workflow, but their permissions, privacy claims and paid limits need checking rather than taking on trust.

For anything important, the goal should be more demanding than “a file appeared in Downloads”. You want the right messages, the necessary attachments, a format you can read, and a clear understanding of what is missing.
The best archive is not the biggest one. It is the one that still makes sense when you open it years later, without needing the original server, a working attachment link, or somebody to explain what “connect it here” meant.
Essential links
- Discord: Request your data — Start with Discord’s official personal-data download.
- DiscordChatExporter: Downloads — Get the application from its official repository.
- Desktop export guide — Follow the graphical application’s export instructions.
- Bot setup guide — Configure bot access for a server you administer.
- Troubleshooting — Find help with authentication, empty exports and large files.
