AI Text FormatterOpen the tool
X / Twitter posts

X (Twitter) Text Formatter

Bold and italic text for X posts, with a counter that counts the way X does: bold letters and emoji weigh two, every link weighs 23, and 280 is the line. Paste an AI draft, keep the emphasis, and know it fits before you post.

How do you bold text on X, and why is the character count different?

X has no bold button outside Premium, so bold text on X is Unicode bold: look-alike characters that X shows as typed. Type or paste above, select the words, click B, and Copy Result. X counts weight rather than characters β€” each bold letter, emoji or CJK character is two, each link is 23, plain text is one β€” and the counter on this page applies the same rules, so a post that reads 280 here is 280 on X.

Note: for best results, copy the text using the Copy button in your LLM.
0 characters Β· 0 words280 left

How to use it

  1. Paste or write the post

    Paste an AI draft and the markdown and hidden characters are cleaned on the way in; **bold** markers become Unicode bold automatically.

  2. Add emphasis sparingly

    Select a word or a short line and click B or I. Each bold character costs two of your 280, so bold the hook, not the post.

  3. Watch the X counter

    The counter is set to X and weighs characters the way X does β€” bold and emoji count two, links count 23. Green means it fits.

  4. Copy and post

    Click Copy Result, paste into the X composer, and the bold, bullets and line breaks arrive exactly as shown.

Frequently Asked Questions

How do I make bold text on X / Twitter?

X has no bold button for most accounts; the formatting option in the composer is a Premium feature. Everyone else uses Unicode bold: a separate set of look-alike characters (𝗯𝗼𝗹𝗱) that X treats as plain text and therefore shows exactly as typed. Type or paste above, select the words, click B, and Copy Result. Italic, bold italic, strikethrough and underline work the same way.

Why does X say my post is too long when my counter says 280?

Because X does not count characters, it counts weight. Most Latin text is one per character, but every Unicode bold letter, every emoji and every CJK character counts as two, and any link counts as 23 no matter how short. A post of 150 bold characters is already over the limit. The counter on this page uses the same weighting X does, so what it says fits will fit.

What is the character limit on X?

280 for standard accounts. X Premium subscribers can write long posts of up to 25,000 characters, which appear in the timeline truncated with a Show more link. Replies and quotes follow the same limits. Direct messages allow 10,000 characters.

Do links really cost 23 characters?

Yes. X replaces every link with a t.co address of fixed length, so a link always counts as 23 characters whether it is 15 or 150 characters long. The counter here detects http(s) links and bare domains and charges 23 for each. Image and video attachments do not count toward the limit at all.

Does Unicode bold hurt reach, search or accessibility on X?

Search does not match a bolded word to its plain spelling, so keep hashtags, @handles and any searchable term plain β€” a bolded #hashtag is not a hashtag. Some screen readers announce the characters individually. Used for a word or a short line, the cost is small and the attention is real; used for a whole post, it reads as shouting and costs you half your character budget.

Can I paste a ChatGPT draft straight into X?

You can, but the markdown comes with it: **asterisks** around bold words, hyphen bullets, em dashes and hidden characters that X counts and sometimes renders as boxes. Paste the draft here first: the markdown is cleaned, bold becomes Unicode bold, bullets become real bullets, and the counter tells you whether it fits before you find out from X.

Bold on X: what works and what does not

X renders plain text. The composer has no bold or italic control for a standard account; Premium subscribers get a formatting option, but that is a small minority of the people reading and replying. Paste a bold word from Google Docs and it arrives plain. Paste a ChatGPT draft and the bold arrives as **asterisks**, because ChatGPT writes markdown and X does not read it. The workaround that has survived every redesign, rename and algorithm change is Unicode: the standard contains complete alphabets of bold, italic and bold-italic letters, originally for mathematics, and X treats them as ordinary characters because they are. Select a word above, click B, and the word is rewritten in those characters. It will show in bold on every client, in quotes and in screenshots, because there is no formatting to strip.

How X counts: the part every other formatter gets wrong

The 280-character limit is not 280 characters. X assigns every character a weight and adds the weights up; the limit is 280 weight. Most text is one per character, but three things are not, and bold text is one of them. The counter on this page is set to X and uses the same rules, so you never paste a post that reads 280 here and 410 on X.

What you typeWeight on X
Letters, digits, punctuation, spaces, accented Latin, Greek, Cyrillic1 each
Unicode bold, italic or bold-italic letters (𝗕𝗼𝗹𝗱)2 each
Emoji, including flags and skin tones2 each
Chinese, Japanese and Korean characters2 each
Any link, however long (X wraps it in t.co)23 flat
Line breaks1 each

The bare-domain rule (example.com without http) is an approximation of what X auto-links; a link you paste with https:// is always counted at 23.

The practical consequence: a fully bold post holds about 140 characters, not 280. Bold the hook β€” the first three or four words, a number, a name β€” and leave the rest plain. That is also what reads best. A timeline full of bold is a timeline where nothing stands out.

Formatting an AI draft for X

Threads of posts, replies and long posts

When a draft is longer than one post, the usual move is a thread: split it at paragraph breaks, number the posts if you like, and keep each under the limit with its own hook. Paste the whole draft here, clean it once, then copy a paragraph at a time β€” the counter updates as you select. Premium accounts can instead publish a single long post of up to 25,000 characters, which the timeline shows truncated with a Show more link; Unicode bold works there too, though the same restraint applies.

Replies and quote posts have the same 280 limit and the same weights, and a reply from a Premium account to a non-Premium reader is still read in plain text, which is why Unicode bold remains the portable choice even for subscribers.

Hashtags, handles, links and alt text

Keep anything X has to recognise in plain characters. A bolded #hashtag is just text; a bolded @handle does not mention anyone; a bolded domain is not a link. Links are counted at 23 but displayed as the original address, and one link per post is the usual advice. Alt text on images has its own 1,000 character field and is read by screen readers, so leave it plain as well. Everything else β€” the hook, the punchline, a number worth noticing β€” is fair game.

Related tools

Private and free

The formatting runs in your browser with client-side JavaScript. Your post is never sent to a server, stored or logged. No account, no limits, no watermark.