Text
Telegram Text Formatter
Type your message, select words and press a style. The preview shows how Telegram will display it.
Select text and press a button. 109 / 4,096 characters after formatting.
Preview
/update in the bot:
bashnpm i example@latest12:30 ✓✓
Paste into Telegram and send: the app turns the markers into formatting. Put a space before and after a marked word — some apps, such as Telegram for iPhone and iPad, only convert markers at word boundaries.
For bot developers
The same message for the Bot API’s sendMessage, with parse_mode set to the format below. Special characters are already escaped.
parse_mode: "MarkdownV2"Processed on your device — nothing is sent anywhere.
Works in your browser. No account needed.
Frequently asked questions
How do I make text bold or italic in Telegram?
Type two asterisks on each side for bold (**bold**) and two underscores for italic (__italic__). Telegram turns them into formatting, and the markers disappear. Two tildes give strikethrough (~~text~~), two vertical bars a spoiler (||text||), one backtick monospace (`text`) and three backticks a code block. You can also select text in the message box and choose a style from the formatting menu.
Which Telegram apps convert these shortcuts?
We checked the source code of Telegram’s official open-source apps: Telegram for Android, Telegram for iPhone and iPad, Telegram Desktop and the two Telegram Web apps all recognise these six markers. Details differ slightly. Telegram for iPhone and iPad and Telegram Web K only convert a marker with a space or the start of a line before it, so leave spaces around marked words. Inline styles end at a line break in every app.
Why don’t my markers turn into formatting?
Most often a style runs across a line break (wrap each line separately), in some apps the marker touches a letter on the outside, or the text sits inside backticks, where nothing else is formatted. Telegram uses doubled markers, so a single *star* or _underscore_ stays as plain text. That is WhatsApp’s syntax, not Telegram’s.
Is there a shortcut for underline?
Not in most apps. Telegram Web K accepts _-_text_-_, but the mobile apps and Telegram Desktop have no typed marker for underline. Select the text and choose Underline from the formatting menu instead, or press Ctrl+U (⌘U on a Mac) in Telegram Desktop. Bots can send underline with <u> in HTML or __double underscores__ in MarkdownV2.
What is the MarkdownV2 output for?
Bots send formatted messages through the Bot API with parse_mode set to MarkdownV2 or HTML. MarkdownV2 uses single markers (*bold*, _italic_, ~strike~, ||spoiler||), and every _ * [ ] ( ) ~ ` > # + - = | { } . ! in plain text must be escaped with a backslash, or the API rejects the message. This tool adds those escapes for you. In HTML mode only <, > and & need escaping.
Is my text sent anywhere?
No. Formatting, the preview and the Bot API conversion all run in your browser. Nothing you type is uploaded or stored, so you can safely draft announcements or bot messages that are not public yet.
About this tool
Telegram has no font menu, but its apps understand a small set of markdown-style shortcuts. Type **bold**, __italic__, ~~strikethrough~~, ||spoiler||, `monospace` or a ```code block``` and the app converts the markers into real formatting when you send the message. We checked this against the source code of the official open-source apps: Telegram for Android, Telegram for iPhone and iPad, Telegram Desktop and both Telegram Web apps define the same tags. This formatter adds the markers for you and shows a live preview, so you can see the result before you send.
The preview follows the rules the apps share. Bold, italic, strikethrough and spoilers stop at a line break, so a style covering several lines is added to each line on its own. Code blocks can span lines, and a language name straight after the opening backticks, such as ```python, is carried over to the Bot API output. Nothing is formatted inside code. Styles can be nested, for example bold text with an italic word inside. Telegram for iPhone and iPad and Telegram Web K only convert markers that follow a space or the start of a line, so it is best to leave spaces around marked words.
The second half of the tool is for bot developers. Telegram’s Bot API (core.telegram.org/bots/api#formatting-options) accepts formatted text with parse_mode set to MarkdownV2 or HTML, and each has strict escaping rules. In MarkdownV2 the characters _ * [ ] ( ) ~ ` > # + - = | { } . ! and the backslash must be escaped with a backslash outside code, and only ` and \ inside code. In HTML, <, > and & must be written as entities. The tool converts your message to both formats with those rules applied, using <b>, <i>, <s>, <tg-spoiler>, <code> and <pre> tags, so the text can go straight into sendMessage.
Everything runs locally in your browser and nothing you type is uploaded. For formatting in apps that do not understand Telegram’s markers, such as a profile bio, the Unicode styles in our Instagram fonts tool are the usual workaround, because they change the letters themselves rather than adding formatting.