unfurl unfurl Add to Discord

Help

How to use unfurl.

Getting started

unfurl works out of the box. There's nothing to configure.

  1. Invite unfurl to your server.
  2. Someone posts a link from a supported platform.
  3. unfurl replies with a fixed version that actually embeds. Done.

Admins can customize everything with /settings but it's completely optional.

Not your server? Add unfurl to your account instead and use /uf anywhere on Discord - see commands below.

How the bot works

Automatic processing

unfurl watches all channels it can see for links from supported platforms. When it finds one, it posts a fixed URL that shows a proper embed in Discord. It handles up to 5 URLs per message.

No commands needed. No prefixes. Just paste a link and the bot handles the rest.

Cleanup hints

Some links don't need a new embed, just a cleanup: a paywalled article, a link full of tracking, a long Amazon or eBay link, an AMP page. For those, Discord's own preview stays and unfurl adds one small line under it, like ^ clean link: <link> or ^ paywalled? try: <link>. Links that need a real embed fix (X, Instagram, TikTok and so on) get a fixed link as before.

Embed suppression

When unfurl posts a fixed embed, it hides Discord's broken preview on the original message so you don't see two. Cleanup hints leave the original preview alone. This is on by default but can be turned off with /settings embeds.

Undo and delete

Don't want the bot's reply? There are a few ways to remove it:

  • Undo reaction - When enabled, the bot adds an X reaction to its reply. The person who posted the link can click it to delete the bot's message. The reaction disappears after a timeout (default 2 minutes, configurable).
  • Trash reaction - The link author can react to the bot's reply with a trash emoji at any time to delete it. No timeout.
  • Admins - Anyone with Manage Messages can also use either reaction to remove bot replies.

Self-cleanup

unfurl keeps things tidy on its own:

  • If you edit your message and remove the link, the bot deletes its reply.
  • If you delete your message, the bot deletes its reply too.

DM forwarding

When enabled, react 📥 on unfurl's reply and it sends you the link in a DM. Handy for saving links for later. Off by default - admins can enable it with /settings dm-forward.

Tweet translation

unfurl can automatically translate Twitter/X posts into your server's language. Non-English tweets show the translated text alongside the original, while same-language tweets are left untouched. This defaults to English and can be changed to any of 90+ languages - or turned off entirely - with /settings language (start typing a language name to search).

All 93 supported languages

Afrikaans, Albanian, Amharic, Arabic, Armenian, Azerbaijani, Basque, Belarusian, Bengali, Bosnian, Bulgarian, Catalan, Chinese, Corsican, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Frisian, Galician, Georgian, German, Greek, Gujarati, Haitian Creole, Hausa, Hebrew, Hindi, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Kannada, Kazakh, Khmer, Korean, Kurdish, Kyrgyz, Lao, Latin, Latvian, Lithuanian, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Myanmar, Nepali, Norwegian, Pashto, Persian, Polish, Portuguese, Punjabi, Romanian, Russian, Samoan, Scots Gaelic, Shona, Sindhi, Sinhala, Slovak, Slovenian, Somali, Spanish, Sundanese, Swahili, Swedish, Tajik, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Uyghur, Uzbek, Vietnamese, Welsh, Xhosa, Yoruba, Zulu.

Bot language

unfurl speaks 30 languages. Menus and private replies follow your own Discord language. Public replies follow the server's language, or whatever an admin sets with /settings locale.

Old posts get a date

When a Twitter/X link is more than a year old, the reply adds an "Originally posted" line with the date.

Forwarded messages

Discord's Forward button drops embeds. unfurl fixes the links inside forwarded messages too.

Repost detection

Optional, off by default. When on, a link that was already posted in the server gets a small note with who posted it, when, and a jump link. unfurl stores only a hashed fingerprint of each link, never the link itself, for the number of days the admin picks (7 by default, up to 90). Turning it off deletes the fingerprints. Admins choose whether it watches only links unfurl fixes or all links. /settings repost

Scam link guard

Optional, off by default. Checks links against a public phishing list (fake Nitro, fake Steam logins and the like) plus Discord's own list of bad domains. Warn mode replies with a public warning and marks the message with a 🚨 reaction. Delete mode removes the message and leaves a short note; it needs the Manage Messages permission. It also covers members who are excluded from link fixing. The lists are maintained by others, so false positives can happen. /settings scamguard

Fix feed and curated channel

Two optional channels an admin can set up. A fix feed receives every link unfurl fixes, one line each with a jump link to where it was posted. A curated channel receives links that moderators mark by reacting 📌 on a message. Nothing is stored for either; they are plain reposts. /settings fixfeed, /settings curator

Replace mode

Optional, off by default. When on, unfurl deletes a message that contains a link it fixes and reposts the text as "@user wrote:" with the fixed links in place. Messages with files, stickers, polls or threads are never replaced. It needs the Manage Messages permission, and unfurl shows a warning when an admin turns it on. /settings replace

URL cleaning

Beyond fixing embeds, unfurl cleans up your links in several ways:

  • Tracking removal - Strips hundreds of tracking parameters (every UTM variant, fbclid, gclid, igshid, and many more) from URLs across all supported platforms. Instagram links are trimmed down to the parts that point at the content.
  • AMP unwrapping - Converts Google AMP pages back to the original article URL.
  • Amazon cleaning - Reduces long Amazon URLs to a clean product link. No referral tags, no session IDs. Works across all Amazon domains.
  • eBay cleaning - Trims item and search links down to the essentials - search terms, seller and filters stay, the tracking blob goes. Works across all eBay marketplaces.
  • Share-link resolution - Share-sheet links (Reddit shares, TikTok short links, Facebook and Threads share links, and more) are followed to the real post before fixing.
  • Paywall bypass - Adds an archive.today link to paywalled news articles so everyone can read them, or a Wayback Machine link when archive.today has no copy.
  • Short URL expansion - Automatically expands shortened links (youtu.be, redd.it, vm.tiktok.com, etc.) before processing them.
  • YouTube Shorts - Optional, off by default: turns Shorts links into regular video links.

Tracking removal, AMP unwrapping, Amazon cleaning, paywall bypass and YouTube Shorts can each be turned on or off per server with /settings platform.

Opt out for a single link

Prefix any URL with ! to skip it

Put an exclamation mark right before a URL (a space in between is fine) and unfurl will leave it alone. No fixed link, no tracking strip, nothing. Discord's native preview for that URL stays visible.

Example: !https://x.com/user/status/123

Useful when you want to keep Discord's built-in embed for a specific link, or share a raw URL without any processing. It works per-URL. If you have two links in the same message and only one is prefixed with !, the other gets fixed normally.

Opt out completely

Don't want unfurl touching your links at all? Run /optout enabled:true. It works from any server or a DM and applies everywhere: your links are left alone, in every server, until you run /optout enabled:false. Asking explicitly with /uf still works.

Commands

For everyone

/help

Shows supported platforms and features. Admins see additional settings info.

/privacy

Links to the privacy policy on this website.

/invite

Get the invite link to add unfurl to another server.

/uf <link>

Fix a link on demand and get the result right away.

/ufp <link>

Same as /uf, but only you see the result.

Right-click → Apps → Fix links

Fixes every link in the selected message. Same result as /uf, no typing needed.

/optout <on/off>

Stop unfurl from fixing links you post, in every server. Off again whenever you like.

/status

A quick list of which platforms are working and which are down right now.

/feedback

Send feedback about unfurl straight to the developer. Ideas, problems, anything.

Use unfurl anywhere

Add unfurl to your account and /uf and the right-click action work everywhere you are on Discord: in DMs, group chats, and servers that don't have the bot. No permissions involved, it only responds when you invoke it.

For admins

These require Administrator permission or an authorized role/user.

/settings view

See all current settings at a glance - platforms, channel filter, modes, and more.

/settings platform <name> <on/off>

Toggle individual platforms or cleaning features on or off.

/settings channels <mode> [channel] [action]

Control where the bot operates. Modes: none (all channels, default), whitelist (only listed channels), or blacklist (everywhere except listed channels).

/settings embeds <on/off>

Toggle whether the bot suppresses Discord's native embed on the original message.

/settings reply-mode <mode>

Choose how the bot responds: new message (default) or reply (threaded under the original).

/settings undo <on/off> [timeout]

Enable/disable the undo reaction. Timeout is configurable from 10 to 600 seconds.

/settings dm-forward <on/off>

Let people get the fixed link in a DM by reacting 📥 on unfurl's reply.

/settings language <code>

Set the language that Twitter/X posts are auto-translated into (English by default), or turn translation off.

/settings service

Switch between proxy services for platforms that have multiple options.

/settings authorize <role|user>

Grant a role or user permission to manage unfurl settings.

/settings deauthorize <role|user>

Revoke settings access from a role or user.

/settings exclude <role|user>

Stop fixing links posted by a role or user. Handy for opt-outs or other bots' announcement roles.

/settings unexclude <role|user>

Remove a role or user from the exclusion list.

/settings bot-messages <on/off>

Also fix links posted by other bots and webhooks. Off by default.

/settings locale <language>

The language unfurl replies in on this server. Default is the server's language.

/settings repost <on/off> [days] [scope]

Repost detection. Hashed fingerprints only, kept 1 to 90 days. Scope: links unfurl fixes, or all links.

/settings scamguard <off/warn/delete>

Warn about, or remove, messages with known phishing links.

/settings replace <on/off>

Delete messages with fixed links and repost them as "@user wrote:". Off by default, needs Manage Messages.

/settings fixfeed [channel]

Mirror every fixed link into an archive channel. Empty turns it off.

/settings curator [channel]

Let mods repost links into a curated channel by reacting 📌. Empty turns it off.

/settings export

Copy this server's settings as a block of text, for a backup or to set up another server the same way.

/settings import <data>

Paste an export to restore those settings. This replaces the server's current settings.

Permissions

unfurl asks for 7 permissions. It does not need Administrator.

Permission Why
View Channels See messages in channels
Send Messages Post fixed links
Send Messages in Threads Post fixed links in threads and forum posts too
Embed Links Include embeds in responses
Manage Messages Hide broken previews on original messages, and remove messages in scam guard delete mode or replace mode
Read Message History Handle reactions and edit/delete tracking
Add Reactions Add undo reaction to bot replies

Only View Channels, Send Messages and Embed Links are required, in at least one channel. Without the others unfurl still fixes links; it just can't do the extras listed next to them. If unfurl can't post in any channel, it lets the server owner know. It leaves after 24 hours if that happens right after it joins, or after 7 days if the permissions were taken away later.

Common questions

The bot isn't responding to links

Check that the bot can view the channel, send messages and embed links there. Also check /settings view to make sure the platform isn't disabled and the channel isn't excluded by a filter. If a single platform stopped working everywhere, run /status - its fixer service might be down at the moment.

Can I use unfurl without adding it to a server?

Yes. Add it to your account and /uf plus the right-click action work in DMs, group chats, and any server you're in - even ones that don't have the bot. Account installs can't fix links automatically (Discord doesn't allow user-installed apps to read messages), so it's on-demand only.

Can I limit the bot to specific channels?

Yes. Use /settings channels whitelist to only allow specific channels, or /settings channels blacklist to exclude certain channels.

Can regular users delete the bot's replies?

Only the person who posted the original link can delete the bot's reply (via the undo or trash reaction). Admins and users with Manage Messages can also delete them.

Does the bot read my messages?

unfurl reads messages to find links. It does not store message content. With replace mode on, it reposts the message text with the fixed links and keeps no copy. See our privacy policy for full details.

How do I remove the bot?

Kick or ban it from your server like any other bot. All data collection stops immediately. For data deletion requests, join our support server.

Can I stop the bot from touching my links?

Yes, for a single link prefix it with !. For all of them, everywhere, run /optout enabled:true.

Does the bot speak my language?

Menus and private replies use your Discord language automatically (30 languages). Public replies use the server's language, or the one an admin sets with /settings locale.

Something else?

Join our support server and we'll help you out.

unfurl unfurl
Add to Discord Changelog Status Support Privacy Terms GitHub