Twitter/X Character Counter
Count characters against the 280-character X limit, with URLs counted as 23 and a tweet-thread splitter.
- Free, no account
- No watermark
- No usage limit
About the Twitter/X Character Counter
Most Twitter counters stop at the number. They tell you the post is 640 characters, flash "you need 3 tweets," and then leave you to hack it apart by hand, which is the annoying part. You cut a sentence in half, paste each piece into X, count again, type "1/3" and "2/3" yourself, and then find out the numbering shoved one tweet back over the line. This tool does the cutting for you. Paste a long post and it splits into numbered tweets that already fit, each one in its own box with a copy button.
It also uses X's own counting rules, which do not match what you see on screen. A link is 23 characters no matter how long it looks. An emoji is 2. A Chinese, Japanese, or Korean character is 2. So the 280 in your head and the 280 X enforces can be different numbers, and that gap is where a "finished" tweet gets bounced. This one runs the same weighting X does, right down to charging toolbreezy.com/pricing as a link when you left the https:// off it.
Everything stays on your machine, too. Nothing you paste gets uploaded, logged, or saved, so it is fine for a draft you have not published, an embargoed announcement, or a reply you are still deciding whether to send. You type, it splits, you copy the parts you want.
How to use
- Type or paste your post into the box. The count updates on every keystroke, so there is no button to press and nothing to wait for. You can also drop a .txt file straight onto the box to pull in a longer draft.
- Read the three numbers. Characters used, characters left out of 280, and how many tweets your text actually becomes once it is split.
- Keep "count links as 23" on if your post has a URL in it. X wraps every link in its own shortener and charges a flat 23, so that toggle makes your total match reality. Flip it off for a plain, literal count.
- Watch for red. The second you cross 280, the used number, the remaining number, and the bar all turn red. That is your cue to trim or to thread.
- Split it into a thread. Once your text runs past one tweet, the numbered pieces appear below, each already under the limit. Copy them one at a time, or hit "Copy all tweets" and paste the whole thread in order.
Splitting a long post into a thread
This is the part other counters skip, and it is the reason this one exists. When your text goes over 280, the splitter breaks it into a real thread right below the box.
It breaks on whole words and sentences, never in the middle of one. You will not get a tweet that ends "...and the reason I th" with the rest stranded on the next post. Links stay whole too, so a URL never gets sliced across two tweets and turned into two dead links.
The numbering counts, and that is what trips people up when they thread by hand. "4/9" is three characters and a space, so if you write a tweet to a dead-on 280 and then add the label, you have already gone over, so the splitter reserves that room before it starts cutting. It works out how many tweets you will end up with, measures the widest label it needs, and sizes every tweet so the number stays within the limit instead of pushing past it. Prefer a thread with no counters at all? Turn numbering off in the splitter controls and it drops them.
You can set the target, as well. 280 is the default. Drop it to 250 if you like a little slack, handy when you expect people to quote-tweet a line, or when you want a hashtag on every post. Each tweet carries its own live count underneath, so you can see how full it is before it goes out.
One honest caveat: a thread only pays off when the idea genuinely has parts. If your thought fits one clean tweet, force it into one and it will land harder than a padded three-parter. The splitter will thread a thin idea for you, sure, but readers can always tell.
How X actually counts your characters
X runs a weighted count, so different characters cost different amounts against your 280. There are only a few rules to learn.
Plain text is 1 apiece. Letters, numbers, spaces, punctuation, the standard European accented letters. A line break costs 1 too.
Links are always 23. Every URL gets wrapped in t.co and billed 23 flat, whether the real address is 15 characters or 150. This is the one that shocks people, because a long link looks like it is eating the whole budget when it barely dents it. It also means pushing a link through a separate shortener first saves you nothing on X. Paste the full one and move on. The https:// is optional too, so a bare toolbreezy.com/pricing is still a link and still 23, and a counter that only looks for http will read high on every one of those.
Emoji are 2 each, and a compound emoji like a flag or a family is still charged as a single emoji, so 2 again. A row of five emoji quietly runs you 10. This tool reads emoji the way X does, including the stitched-together ones that fool basic counters into charging way too much.
CJK is 2 each. Chinese, Japanese, and Korean characters count double, which means a tweet written entirely in one of those scripts maxes out around 140, not 280. Plenty of plain counters miss this and hand you a number X will reject, but this one gets it right.
Two more worth having in your head. Mentions and hashtags count as ordinary text, so front-loading three hashtags can swallow 30 or 40 characters before you have said a word. And attached media, the photos, videos, GIFs, and polls, does not count at all. You can post a full 280 characters and still hang four images off it.
Frequently asked questions
Can this actually split my text into tweets, or only count them?
It splits them. Paste anything past 280 characters and the tool builds the full thread below the box, one tweet per card, each already sized to fit and numbered in order. That is the whole difference from a plain counter, which tells you how many posts you need and then leaves the surgery to you.
Will the numbering push a tweet over the limit?
No, and avoiding exactly that is why you would split here instead of by hand. The tool treats the "1/n" label as part of each tweet and holds room for it before it cuts, so every numbered post lands under 280 with the counter included. If you would rather publish without numbers, one toggle turns them off.
Does it ever break a word or a link in half?
Not once. It only cuts at the spaces between whole words, and it keeps a URL as one unbreakable chunk, so a link is never split across two posts. If a single word were somehow longer than an entire tweet, it would break that one word as a last resort, though that almost never happens with real writing.
Why does the counter sometimes disagree with another tool?
Because a lot of tools just tally keystrokes. They give a Chinese character a 1 and a long link its full length, which is not how X measures. This counter applies X's real weighting, links at 23, emoji and CJK at 2, and it tidies your text into one standard spelling before it counts, which is the step that makes Korean pasted off a Mac land on the same number as Korean typed here. Without it that paste can score double. One honest gap is left. Reading a link needs the list of live domain endings, and this carries the common ones rather than all thousand-odd of them, so a link on some brand new ending gets counted as ordinary text and reads a little high.
Can I change how many characters each tweet uses?
Yes. The default target is the full 280. Switch it to 250 in the splitter for a buffer, which helps when you want to leave space for a hashtag on each post or keep a line short enough to be quoted cleanly. Every tweet still shows its own count, so the headroom is never a guess.
Is my draft sent anywhere or stored?
No. All the counting and splitting runs inside your own browser, so the text never leaves your device and nothing is uploaded, saved, or logged. Close the tab and the draft is gone for good, which is what makes this safe for unpublished news or anything you are not ready to show.
Can I load a long draft from a file?
Yep. Drop a .txt or .md file onto the input box and its contents load straight in, ready to split, and pasting from anywhere works just as well. It is a quick way to turn a blog intro or a newsletter blurb into a thread without copying it over in pieces.