Saves Discord chat logs to a file
Find a file
Kornelius Rohrschneider 5251ae0e95
Added explicit handling of existing export files
Previously, existing export files had just been overwritten by a new export.
This has been changed; instead, there are now several possible options on how to explicitly handle existing export files:
- Abort aborts the export if the channel had previously been exported.
- Overwrite removes the existing export before exporting the channel again.
- Append appends the existing export, which means that only messages after the last export will be exported.
The option that's used if a previous export is detected is currently hardcoded.

A safeguard has been added to prevent the exporter from accidentally overwriting any existing files.

Additionally, the creation of a Snowflake from a timestamp has been improved: If a Snowflake will be used to determine the messages starting at the given timestamp, it now won't precisely represent that timestamp anymore, but instead be the latest possible Snowflake just before that timestamp.
This is necessary to prevent the first Discord message in that specific millisecond from being excluded (which may have previously happened).
2025-10-25 19:17:00 +02:00
.assets Update screenshot 2023-02-16 23:16:04 +02:00
.docs Bundle the app for macOS (#1375) 2025-05-10 03:03:55 +03:00
.github Fix CD workflow 2025-10-04 04:46:01 +03:00
DiscordChatExporter.Cli Bump the nuget group with 13 updates (#1431) 2025-10-02 16:08:07 +03:00
DiscordChatExporter.Cli.Tests Added explicit handling of existing export files 2025-10-25 19:17:00 +02:00
DiscordChatExporter.Core Added explicit handling of existing export files 2025-10-25 19:17:00 +02:00
DiscordChatExporter.Gui Added explicit handling of existing export files 2025-10-25 19:17:00 +02:00
.gitignore Update gitignore file 2023-11-09 13:41:43 +02:00
Directory.Build.props Use .NET 9 2024-11-12 22:19:58 +02:00
DiscordChatExporter.Cli.dockerfile Use .NET 9 2024-11-12 22:19:58 +02:00
DiscordChatExporter.sln Rename solution items 2025-06-08 21:25:01 +03:00
docker-entrypoint.sh Fix pathing in docker entrypoint 2024-01-31 21:32:40 +02:00
favicon.icns Bundle the app for macOS (#1375) 2025-05-10 03:03:55 +03:00
favicon.ico Update favicon 2023-05-26 20:40:45 +03:00
favicon.png Update favicon 2023-05-26 20:40:45 +03:00
License.txt Update copyright license year (#1328) 2025-01-01 13:11:26 +02:00
NuGet.config Update NuGet.config 2022-04-22 17:03:03 +03:00
Readme.md Include notes about running the app on macOS in readme 2025-05-22 21:16:13 +03:00

DiscordChatExporter

Status Made in Ukraine Build Coverage Release Downloads Pulls Discord Fuck Russia

Development of this project is entirely funded by the community. Consider donating to support!

Icon

DiscordChatExporter is an application that can be used to export message history from any Discord channel to a file. It works with direct messages, group messages, and server channels, and supports Discord's dialect of markdown as well as most other rich media features.

If you have questions or issues, please refer to the docs.

💬 If you want to chat, join my Discord server.

Terms of use[?]

By using this project or its source code, for any purpose and in any shape or form, you grant your implicit agreement to all the following statements:

  • You condemn Russia and its military aggression against Ukraine
  • You recognize that Russia is an occupant that unlawfully invaded a sovereign state
  • You support Ukraine's territorial integrity, including its claims over temporarily occupied territories of Crimea and Donbas
  • You reject false narratives perpetuated by Russian state propaganda

To learn more about the war and how you can help, click here. Glory to Ukraine! 🇺🇦

Download

  • Graphical user interface (desktop app):
  • Command-line interface (terminal app):
    • 🟢 Stable release: look for DiscordChatExporter.Cli.*.zip
    • 🟠 CI build: look for DiscordChatExporter.Cli.*.zip
    • 🐋 Docker: docker pull tyrrrz/discordchatexporter
    • 📦 AUR: discord-chat-exporter-cli
    • 📦 Nix: discordchatexporter-cli

Important: To launch the GUI version of the app on MacOS, you need to first remove the downloaded file from quarantine. You can do that by running the following command in the terminal: xattr -rd com.apple.quarantine DiscordChatExporter.app.

Note

: If you're unsure which build is right for your system, consult with this page to determine your OS and CPU architecture.

Note

: AUR and Nix packages linked above are maintained by the community. If you have any issues with them, please contact the corresponding maintainers.

Features

  • Cross-platform graphical and command-line interfaces
  • Authentication via either a user or a bot token
  • Multiple output formats: HTML (dark/light), TXT, CSV, JSON
  • Support for markdown, attachments, embeds, emoji, and other rich media features
  • File partitioning, date ranges, message filtering, and other export options
  • Self-contained exports that can be viewed offline

Screenshots

channel list rendered output

See also

  • Chat Analytics — solution for analyzing chat patterns of Discord users, using exports produced by DiscordChatExporter.
  • DiscordChatExporter-frontend — convenient viewer for exports produced by DiscordChatExporter.