Discord formatting cheat sheet

Everything Discord's markdown can do, in one page. The formatter tool will wrap text in any of this for you.

Guide · About 7 minutes

Discord uses its own dialect of Markdown. You type markers around your text, and when the message sends, each reader's client renders the formatting and hides the markers. The formatting lives in the message, not in the characters, which is why editing a message can remove it and why copying the text out gives you plain letters.

Text styling

Discord text styling syntax
EffectType thisNotes
Italic*text* or _text_Single marker either side
Bold**text**
Bold italic***text***Three asterisks
Underline__text__Two underscores, not asterisks
Underline bold__**text**__Markers nest
Strikethrough~~text~~
Spoiler||text||Hidden until clicked
Inline code`text`Single backticks; disables other formatting inside

Structure

Headers and subtext were added relatively recently and are the fastest way to make a long rules or information post scannable. All of them need a space after the marker.

Discord structural formatting syntax
EffectType thisNotes
Big header# HeadingLargest
Medium header## Heading
Small header### Heading
Subtext-# Small printSmaller and dimmed
Quote> quoted lineOne line only
Block quote>>> quotedEverything after it is quoted
Bulleted list- item or * itemIndent two spaces to nest
Numbered list1. itemNumbering is automatic
Masked link[text](https://example.com)Works for bots and webhooks; ordinary user messages show the raw URL

Code blocks

Three backticks on their own line above and below your text produce a code block. Add a language name directly after the opening backticks for syntax highlighting.

Code blocks are also the only reliable way to post an ASCII banner, because they force a monospace font and preserve alignment. Without one, the rows shear apart.

Coloured text

Discord has no syntax for colouring a word inside a sentence. The only supported route is a code block tagged ansi, which makes Discord interpret the escape codes that terminals have used for decades. Inside such a block, an invisible escape character followed by a code switches the colour on, and [0m switches it off again.

The formatter tool generates these with the escape character already in place, which matters because you cannot type it on a keyboard.

ANSI colour codes supported in Discord code blocks
CodeText colourCodeBackground
30Grey40Dark blue
31Red41Orange
32Green42Grey
33Yellow44Light grey
34Blue45Indigo
35Pink46Silver
36Cyan47White
37White1Bold, combined with a colour

Colour support is not universal. ANSI rendering has been inconsistent across Discord's mobile clients. On a client that does not support it, your text still appears — just in plain monospace without the colour. Test in your own server before using it for an announcement people need to read.

Timestamps

One of Discord's most useful and least known features. A timestamp tag displays in each reader's own time zone and local format, which removes every "wait, is that your 8pm or mine?" reply from an event announcement.

The syntax is <t:UNIX:FORMAT>, where UNIX is the Unix epoch seconds for your moment and FORMAT is one letter.

Discord timestamp format codes
FormatShows
tShort time, such as 16:20
TLong time, with seconds
dShort date
DLong date, such as 25 July 2026
fDate and time — the default if you omit the format
FDay of week, date and time
RRelative, such as "in 3 hours" — counts down live

Escaping

To show a marker instead of applying it, put a backslash in front of it. Typing a backslash before an asterisk displays the asterisk. This works for asterisks, underscores, tildes, backticks and vertical bars.

To escape a whole passage at once, put it in an inline code span or a code block, both of which render their contents literally.

Where markdown does not work

Markdown applies to message content only. These fields are never parsed for it, so markers typed into them stay as literal characters:

  • Your username and server nickname
  • Channel names and category names
  • The server name and description
  • Role names
  • Status and custom status text

For those, formatting has to be built into the characters themselves. That is what the Unicode tools on this site are for — a bold nickname or circled letters in a channel name work because the characters are already styled, with no markdown involved. Circled letters are particularly useful in channel names, since Discord lowercases your input and replaces spaces with hyphens but leaves those characters alone.

Quick reference

  • Formatting lives in the message, so it can be edited away and does not survive being copied elsewhere.
  • Markers nest, except inside code blocks.
  • Headers, subtext and lists all need a space after the marker.
  • Colour only works inside an ansi code block.
  • Names and channels need Unicode characters, not markdown.

Tools mentioned in this guide