// hunnaG / bots / scribebot

ScribeBot

Copy or export a channel's messages with Discord-search-style filters, into another channel or as files.

BetaDiscord botDiscord

ScribeBot moves messages around. Point it at a channel, narrow the messages down the way you would in Discord’s search bar (from:@someone, has:image, after:2026-01-01, -from:bots, "an exact phrase"), and choose where the matches go: another channel, or a file.

Copies are re-posted one message every 1.2 seconds with the author’s name in front, or, if an admin allows it, through a webhook as the original authors with their names and avatars. Attachments come along up to the server’s upload limit; bigger ones are linked. Mentions in copied text never ping anyone.

Exports come back as a transcript in .txt, .md, or .json, and with with_attachments as a zip holding every attachment under its message id. Long transcripts and big zips are split into parts that each fit under the server’s upload limit, so nothing has to leave Discord.

Setup
  1. Invite the bot. It needs to read the source channel’s history and post in the destination.
  2. Only the server owner, administrators, or members with a role you choose may run it. Pick the role with /scribebot setup admin_role:@Role.
  3. Optional: /scribebot setup webhook_mode:True allows as_author copies, which need the bot to have Manage Webhooks in the destination.
  4. Try /scribebot export source:#somewhere limit:20 to see a transcript, then a copy.
Good to know

Every job posts a progress message with the counts and a Cancel button, and one job runs per server at a time; the next few queue behind it. A job reads at most 5,000 messages unless an admin raises the ceiling, and downloads at most 250 MB or 500 files of attachments. Dates are UTC and follow Discord’s rules, so after:2026-01-01 starts on the second. ScribeBot never reads a channel the person running the command cannot read, and never works in DMs.

Commands

Anyone can use the first group. The second is for the people who run the server.

For everyone

  • /scribebot help

    The filters, the query syntax, and the ceilings, in Discord.

    e.g./scribebot help

For admins

  • /scribebot copyadmin

    Re-post every matching message from one channel into another, oldest first, one every 1.2 seconds. Filters are options or a search-style query.

    e.g./scribebot copy source:#general destination:#best-of has:image from:@someone after:2026-01-01

  • /scribebot exportadmin

    Collect the matches into a .txt, .md, or .json transcript, optionally zipped with every attachment, split under the server's upload limit.

    e.g./scribebot export source:#photos format:txt with_attachments:True has:image during:2026-02

  • /scribebot preset saveadmin

    Save a source, a filter query, and the output choices under a name, per server. Up to 50.

    e.g./scribebot preset save name:weekly-photos kind:export source:#photos format:md with_attachments:True query:has:image during:2026-03

  • /scribebot preset runadmin

    Run a saved preset, optionally overriding a copy preset's destination.

    e.g./scribebot preset run name:weekly-photos

  • /scribebot preset listadmin

    List the server's presets with their filters.

    e.g./scribebot preset list

  • /scribebot preset deleteadmin

    Remove a preset.

    e.g./scribebot preset delete name:weekly-photos

  • /scribebot setupadmin

    Choose an admin role that may run jobs, raise the per-job message ceiling (up to 20,000), or allow webhook copies. Owner or Administrator only.

    e.g./scribebot setup admin_role:@Archivists message_ceiling:10000 webhook_mode:True

  • /scribebot canceladmin

    Stop the server's running job.

    e.g./scribebot cancel

What it needs

Requiredwithout these the bot cannot do its job

  • View ChannelsSees the source channel and the destination.
  • Read Message HistoryWalks the source channel's history to find the matches.
  • Send MessagesPosts copies, the progress message, and the export files.
  • Attach FilesRe-uploads attachments in copies and delivers transcripts and zips.

Optionaleach one switches on an extra part

  • Manage WebhooksPosts copies as the original authors, with their names and avatars, when as_author is on.
  • Embed LinksLets links in copied messages unfurl as they did in the original.
  • Send Messages in ThreadsLets a thread be the destination of a copy.

Reads: Message Content intent, reads message text to filter it and to copy or export it; that is the whole job. These are Discord's privileged intents, already switched on for this bot.