Desktop app & browser script that saves Discord chat history into a file, and an offline viewer that displays the file.
Go to file
chylex 2424a8ac8d
Fix UI freezing due to attachment download statistics being updated on the wrong thread
2023-07-18 18:56:34 +02:00
.github Create FUNDING.yml 2020-05-13 23:25:00 +02:00
.idea Add '/app' to excluded folder in root IDEA project 2022-03-22 01:30:38 +01:00
app Fix UI freezing due to attachment download statistics being updated on the wrong thread 2023-07-18 18:56:34 +02:00
lib Update UglifyJS & remove YUI Compressor 2021-06-13 17:20:11 +02:00
tools Add Python script to download attachments and image embeds & update the archive 2020-09-24 02:31:08 +02:00
web Update to .NET 8 2023-07-18 15:56:15 +02:00
.gitattributes Enforce LF line endings 2020-09-23 19:42:57 +02:00
.gitignore Allow built tracker script & viewer in gitignore 2019-09-11 09:10:36 +02:00 Rename LICENSE to 2016-10-27 18:10:40 +02:00 Update to .NET 8 2023-07-18 15:56:15 +02:00


For instructions on how to use Discord History Tracker, visit the official website.

To report an issue or suggestion, first please see the issues page and make sure someone else hasn't already created a similar issue report. If you do find an existing issue, comment on it or add a reaction. Otherwise, either click New Issue, or contact me via email or Twitter @chylexmc.

If you are interested in building from source code, continue reading the build instructions below.

This branch is dedicated to the Discord History Tracker desktop app. If you are looking for the older browser-only version, visit the master-browser-only branch.

Build Instructions


Fork the repository and clone it to your computer (if you've never used git, you can download the GitHub Desktop client to get started quickly).

Folder organization:

  • app/ contains a Visual Studio solution for the desktop app
  • lib/ contains utilities required to build the project
  • web/ contains source code of the official website, which can be used as a template when making your own website

To start editing source code for the desktop app, install the .NET 8 SDK, and then open app/DiscordHistoryTracker.sln in Visual Studio or Rider.


To build a Debug version of the desktop app, there are no additional requirements.

To build a Release version of the desktop app, follow the instructions for your operating system.

Release Windows (64-bit)

  1. Install Python 3, and ensure the python executable is in your PATH
  2. Install Powershell 5 or newer (on Windows 10, the included version of Powershell should be enough)

The lib/ folder contains an installation of Node and uglify-js, which are used to minify the tracking script. This installation will only work on 64-bit Windows; building on 32-bit Windows is not supported, but you can try.

Run the app/build.bat script, and read the Distribution section below.

Release Other Operating Systems

  1. Install Python 3, and ensure the python executable exists and launches Python 3
    • On Debian and derivatives, you can install python-is-python3
    • On other distributions, you can create a link manually, for ex. ln -s /usr/bin/python3 /usr/bin/python
    • If you don't want python to mean Python 3, then edit Desktop.csproj and change python to python3
  2. Install Node + npm
  3. Install uglify-js globally (npm install -g uglify-js)
  4. Install the zip package from your repository

Run the app/ script, and read the Distribution section below.


The mentioned build scripts will prepare Release builds ready for distribution. Once the script finishes, the app/bin folder will contain self-contained executables for each major operating system, and a portable version that works on all other systems but requires .NET 8 to be installed.

Note that when building on Windows, the generated .zip files for Linux and Mac will not have correct file permissions, so it will not be possible to run them by double-clicking DiscordHistoryTracker. I tried using Python to re-create the archives with correct file permissions, but found that Linux zip tools could not see them. The only working solution is building the Windows + portable version on Windows, and Linux + Mac version on Linux.