Markdown to Slack converter

Paste markdown from ChatGPT, a README, or your notes and get a message Slack formats correctly. It converts Slack mrkdwn back to markdown too, with a live Slack preview. Nothing leaves your browser.

How it looks in Slack
Y
You9:41 AM
Release notes
We shipped dark mode and fixed the login bug. The old dashboard is gone.
• Settings page has a new theme picker
• Run pnpm test before you merge
◦ Nested items keep their level
1. Pull the branch
2. Deploy to staging
Heads up: deploys are frozen on Friday.
Plan | Seats | Price
-----+-------+------
Free |    10 |    $0
Pro  |    50 |    $8
git pull && pnpm install

Copy for Slack puts formatted text on the clipboard. Paste it into the Slack message box and the bold, links, lists, and code come with it.

Slack mrkdwn

What changes when markdown goes to Slack

Slack uses its own format, mrkdwn. These are the rules the converter applies.

MarkdownSlack mrkdwnNote
**bold** or __bold__*bold*One asterisk on each side.
*italic* or _italic__italic_Underscores only.
~~strike~~~strike~One tilde on each side.
[text](https://url)<https://url|text>Relative links keep only the text.
![alt](image.png)<image.png|alt>Slack cannot show images inline.
# Heading*Heading*Slack has no headings, so it becomes a bold line.
- item• itemNested items get ◦ and ▪, indented 4 spaces.
1. item1. itemRenumbered in order, like markdown does.
- [ ] task☐ taskDone tasks get ☑.
> quote> quoteNested quotes flatten to one level.
```js ... `````` ... ```The language tag is dropped.
| a | b |code blockColumns are padded so they line up.
---──────Slack has no divider line.
\*literal\**literal*A hidden soft hyphen keeps it from turning bold.

How to paste markdown into Slack

  1. Paste your markdown in the left box. ChatGPT, Claude, GitHub READMEs, Notion exports, and Obsidian notes all work.
  2. Check the preview. It follows Slack rules: headings turn into bold lines, tables into a code block, and nested lists into indented bullets.
  3. Press Copy for Slack, click the Slack message box, and paste. The bold, italics, links, lists, quotes, and code come with it.
  4. Writing a bot or webhook message instead? Tick the escape option and copy the mrkdwn text into your chat.postMessage payload.

Frequently asked questions

How do I paste markdown into Slack with formatting?

Convert it first, then paste it as formatted text. Slack's message box does not read markdown: when we pasted **bold**, [text](url), and # Heading as plain text, Slack sent the characters as typed. Press Copy for Slack in this tool and paste into Slack. The clipboard then holds formatted text, and Slack keeps the bold, links, lists, quotes, and code.

Does Slack support markdown?

Not standard markdown. Slack has its own format called mrkdwn, and its developer docs say it "uses different rules". Bold is *one asterisk*, italic is _underscores_, strikethrough is ~one tilde~, and a link is <https://url|text>. There are no headings or tables. Double asterisks, [text](url) links, and # headings show up as literal characters.

How do I post ChatGPT answers in Slack without the asterisks?

Copy the answer with the copy button under the ChatGPT reply, which gives you markdown. Paste it into this converter, press Copy for Slack, and paste into your Slack message. Headings become bold lines, and tables become a lined-up code block, so the reply reads the way it did in ChatGPT.

How do I send a table in Slack?

Slack messages have no table format. The converter turns a markdown table into a code block with padded columns, which lines up because code blocks use a fixed-width font. It also keeps column alignment from the :---: row. For a wide table, a list or a Slack canvas reads better on phones.

What is the difference between markdown and Slack mrkdwn?

Markdown uses **text** for bold, *text* for italic, ~~text~~ for strikethrough, [text](url) for links, and # for headings. Slack mrkdwn uses *text*, _text_, ~text~, and <url|text>, and has no headings, tables, or real lists. Slack also only formats when the marker sits at a word edge, so *bold*text stays literal. The converter adds an invisible zero-width space in that case.

How do I format text for a Slack bot or webhook?

Use the Slack mrkdwn output. It works as the text field of chat.postMessage and incoming webhooks, and in Block Kit text objects of type mrkdwn. Tick "Escape &, < and >" first: Slack treats those three characters as control characters and asks apps to send them as &amp;, &lt;, and &gt;. Block Kit also has a markdown block that accepts standard markdown, if you would rather send the original.

Can I convert a Slack message back to markdown?

Yes. Switch to Slack to Markdown and paste the mrkdwn, for example the text field of a message from the API. *bold* becomes **bold**, <url|text> becomes [text](url), bullet lines become a markdown list, and mentions like <@U123> and <!here> become @U123 and @here.

Is my text uploaded anywhere?

No. The conversion runs in your browser, and there is no account or limit. The text never leaves your computer, which matters when you paste internal docs or code.

Related reading

Slack Green does one thing: it keeps your Slack presence dot green while you are actually working, so a quiet keyboard does not mark you away. Try it free.