Discord History Tracker {{{version:web}}} | Release Notes
-
Discord History Tracker is a browser script that lets you locally save chat history in your servers, groups, and private conversations.
-
When the script is active, it will load history of the selected text channel up to the first message, and let you download it for offline viewing in your browser.
+
Discord History Tracker lets you save chat history in your servers, groups, and private conversations, and view it offline.
+
You can use Discord History Tracker either entirely in your browser, or download a desktop app for Windows / Linux / Mac. While the browser-only method is simpler and works on any device that has a modern web browser, it has significant limitations and fewer features than the app. Please read about both methods below.

-
How to Save History
-
Running the Script
+
Method 1: Browser-Only
+
A tracking script will load messages according to your settings, and save them in your browser.
+
Because everything happens in your browser, if the browser tab is closed, or your browser or computer crashes, you will lose all progress. Your browser may also be unable to process large amounts of messages. If this is a concern, use the app method.
+
Setup the Tracking Script
Option 1: Userscript
Preferred option. Requires a browser addon, but DHT will stay up-to-date and be easily accessible on the Discord website.
@@ -40,12 +42,14 @@
-
Option 2: Browser Console
+
Option 2: Browser / Discord Console
The console is the only way to use DHT directly in the desktop app.
- - Click Copy to Clipboard to copy the script
+ - Click Copy to Clipboard to copy the tracking script
+
+
- Press Ctrl+Shift+I in your browser or the Discord app, and select the Console tab
- Paste the script into the console, and press Enter to run it
- Press Ctrl+Shift+I again to close the console
@@ -67,18 +71,46 @@
Old Versions
-
-
Whenever DHT is fixed to work with a recent Discord update, it will no longer work on the previous version of Discord.
-
If you haven't received that Discord update yet, see Release Notes for information about recent updates, and Old Versions if you need to use an older version of DHT.
-
+
Whenever DHT is updated to work with a new version of Discord, it may no longer work with the previous version of Discord.
+
If you haven't received that Discord update yet, see Release Notes for information about recent updates, and Old Versions if you need to use an older version of DHT.
-
Using the Script
-
When running for the first time, you will see a Settings dialog where you can configure the script. These settings will be remembered as long as you don't delete cookies in your browser.
-
By default, Discord History Tracker is set to pause tracking after it reaches a previously saved message to avoid unnecessary history loading. You may also set it to load all channels in the server or your friends list by selecting Switch to Next Channel.
-
Once you have configured everything, upload your previously saved archive (if you have any), click Start Tracking, and let it run. After the script saves all messages, download the archive.
+
How to Track Messages
+
When using the script for the first time, you will see a Settings dialog where you can configure the script. These settings will be remembered as long as you don't delete cookies in your browser.
+
By default, Discord History Tracker is set to automatically scroll up to load the channel history, and pause tracking if it reaches a previously saved message to avoid unnecessary history loading.
+
Before you Start Tracking, you may use Upload & Combine to load messages from a previously saved archive file into the browser.
+
When you click Download, the browser will generate an archive file from saved messages, and lets you save it to your computer.
-
How to View History
-
Download the Viewer, open it in your browser, and load the archive. By downloading it to your computer, you can view archives offline, and allow the browser to load image previews that might otherwise not load if the remote server prevents embedding them.
+
How to View History
+
First, save the Viewer file to your computer. Then you can open the downloaded viewer in your browser, click Load File, and select the archive to view.
+
+
Method 2: Desktop App
+
The app can be downloaded from GitHub. Every release includes 4 versions available:
+
+ - win-x64 is for Windows (64-bit)
+ - linux-x64 is for Linux (64-bit)
+ - osx-x64 is for macOS (Intel)
+ - portable requires .NET 5 to be installed, but should run on any operating system supported by .NET
+
+
The three non-portable versions include an executable named DiscordHistoryTracker you can launch. For the portable version, extract the archive into a folder, open the folder in a terminal and type: dotnet DiscordHistoryTracker.dll
+
+
How to Track Messages
+
The app saves messages into a database file stored on your computer. When you open the app, you are given the option to create a new database file, or open an existing one.
+
In the Tracking tab, click Copy Tracking Script to generate a tracking script that works similarly to the browser-only version of Discord History Tracker, but instead of saving messages in the browser, the tracking script sends them to the app which saves them in the database file.
+

+
See Option 2: Browser / Discord Console above for more detailed instructions on how to paste the tracking script into the browser or Discord app console.
+
When using the script for the first time, you will see a Settings dialog where you can configure the script. These settings will be remembered as long as you don't delete cookies in your browser.
+
By default, Discord History Tracker is set to automatically scroll up to load the channel history, and pause tracking if it reaches a previously saved message to avoid unnecessary history loading.
+
+
How to View History
+
In the Viewer tab, you can open a viewer in your browser, or save it as a file you can open in your browser later. You also have the option to apply filters to only view a portion of the saved messages.
+

+
+
Technical Details
+
+ - The app uses SQLite, which means that you can use SQL to manually query or manipulate the database file.
+ - The app communicates with the script using an integrated server. The server only listens for local connections (i.e. connections from programs running on your computer, not the internet). When you copy the tracking script, it will contain a randomly generated token that ensures only the tracking script is able to talk to the server.
+ - You can use the
-port <p>
and -token <t>
command line arguments to configure the server manually — otherwise, they will be assigned automatically in a way that allows running multiple separate instances of the app.
+
External Links
@@ -88,10 +120,6 @@
Support via Patreon —
Support via Ko-fi
-
-
Disclaimer
-
Discord History Tracker and the viewer are fully client-side and do not communicate with any servers – the terms 'Upload' and 'Download' only refer to your browser. If you close your browser while the script is running, all unsaved progress will be lost.
-
Please, do not use this script for large or public servers. The script was made as a convenient way of keeping a local copy of private and group chats, as Discord is currently lacking this functionality.
diff --git a/web/style.css b/web/style.css
index 2eea4d9..a57a10d 100644
--- a/web/style.css
+++ b/web/style.css
@@ -1,13 +1,12 @@
body {
font-family: Whitney, "Helvetica Neue", Helvetica, Arial, sans-serif;
margin: 0;
- padding: 0;
+ padding: 0 0 20px;
font-size: 18px;
text-shadow: 1px 1px 0 #111;
color: rgba(255, 255, 255, 0.8);
- background-color: #3B3E45;
+ background-color: #3b3e45;
box-sizing: border-box;
- -moz-box-sizing: border-box;
}
.inner {
@@ -22,7 +21,7 @@ p {
}
a {
- color: #0EB3E0;
+ color: #1ecfff;
text-decoration: none;
}
@@ -64,30 +63,31 @@ h1 span.notes {
}
h2 {
- margin: 36px 0 0;
+ margin: 40px 0 0;
font-size: 32px;
- color: #ffb67b;
+ color: #f9d288;
}
h3 {
- margin: 24px 0 0;
+ margin: 30px 0 12px;
font-size: 22px;
color: rgba(255, 255, 255, 0.9);
}
h2 + h3, h3 + h4 {
- margin-top: 12px;
+ margin-top: 15px;
}
h4 {
- margin: 22px 0 0;
- font-size: 19px;
+ margin: 25px 0 0;
+ font-size: 20px;
color: rgba(255, 255, 255, 0.75);
}
ul, ol {
margin-top: -6px;
margin-left: -6px;
+ margin-bottom: -2px;
}
li {
@@ -102,6 +102,10 @@ li > img {
margin-top: 8px;
}
+code {
+ margin: 0 3px;
+}
+
.dht {
max-width: 100%;
max-height: auto;
@@ -116,11 +120,10 @@ li > img {
border: 2px dashed rgba(255, 255, 255, 0.25);
border-radius: 3px;
box-sizing: border-box;
- -moz-box-sizing: border-box;
}
.quote {
- border-left: 2px dashed rgba(255, 255, 255, 0.1);
+ border-left: 2px dashed rgba(255, 253, 123, 0.5);
margin-left: 2px;
padding-left: 12px;
}