You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jamie Quigley 2114bab94c
Merge pull request #38 from Sciencentistguy/renovate/serde-1.x
2 days ago
src Require specifying out directory. Bump version 4 days ago
.gitignore Ignored `.idea` 5 months ago
Cargo.lock Update Rust crate serde to 1.0.134 2 days ago
Cargo.toml Update Rust crate serde to 1.0.134 2 days ago
LICENCE-GPL Relicence 5 months ago
LICENCE-MPL Relicence 5 months ago Relicence 5 months ago Release version 0.3.0 and update readme 5 months ago
renovate.json Add renovate.json 2 months ago
rustfmt.toml Add rustfmt rule to convert use statements to one per line 11 months ago


A discord bot to archive the messages in a discord text channel.


  • Create a discord application and bot.
  • Enable the Server Members privileged intent for your bot. Note that this means your bot cannot be in more than 100 servers without verification. For a bot of this type, where the output is saved to the disk of the computer running it, this should not be a problem.
  • Invite the bot to your server. Make sure to select the application.commands scope if you want to use slash commands.
  • Run the bot, providing the token and application id as command line arguments:
    • Either with cargo:
      • cargo run -- <token_filename> <application_id_filename>
    • Or standalone:
      • discord-channel-archiver <token_filename> <application_id_filename>
  • The commands /archive and /archive_emoji should be available in your guilds.
  • Alternatively, send a message of the form:
    • !archive_emoji
    • !archive <channel> [mode], where channel is the channel you want to archive, and mode is one of either json or html. If this is blank, or if is any other value, all output formats will be generated.
  • Sit back and watch the bot export the channel to the file format(s) you requested.

The HTML generated is very messy, but it should be well-formed. This means that an html formatter such as prettier may be used to clean it up. I'd recommend doing this if the resultant HTML is to be stored for archival purposes. The JSON should be clean as it is generated by serde.

Inspired by DiscordChatExporter.

The HTML / CSS templates are derived from the ones from DiscordChatExporter, under the terms of the GNU GPL.

For licence information, see