Live weighted count with proper t.co link handling — every URL counts as 23 characters, exactly like the real compose box. 100% in your browser.
The number in X's compose box is not a simple character count. It's a weighted count, and if you write with links or emoji, the difference matters. Three rules cover almost every case. First, most Latin-script characters — letters, digits, spaces, standard punctuation — count as 1. Second, emoji and CJK characters count as 2, which is why a post that's heavy on emoji hits the wall faster than it looks like it should. Third, and most importantly for anyone sharing content: every URL counts as exactly 23 characters.
That last rule comes from t.co, X's mandatory link wrapper. When you publish a post containing a link, X replaces it with a t.co redirect before it ever hits the timeline. Because the wrapped link has a fixed length, X bills you a flat 23 characters per URL regardless of the original. A 12-character link costs 23. A 280-character monster of a UTM-tagged link also costs 23. This cuts both ways: you never need a third-party link shortener to save characters (it does nothing), and you can't sneak a short link in for less than 23.
Everything you type in the body counts: @mentions, #hashtags, dollar-sign cashtags, punctuation, line breaks (a newline is 1 character). The notable exception is reply threading — when you reply to a conversation, the usernames shown above your text as part of the reply chain are metadata and don't consume characters. But the moment you type an @username inside your own sentence, it counts character-for-character. Media is the other free rider: images, GIFs, video, and polls attach without consuming any characters at all, which is why a strong image plus a tight 200-character caption is often the most efficient post format available.
Premium accounts can technically post 25,000 characters, so it's tempting to think the limit is dead. In practice it isn't, for one simple reason: the timeline truncates. A long post shows roughly the first few hundred characters and then a "Show more" link, which means the top of your post carries the entire persuasion burden no matter how long the rest is. Writers who consistently get engagement treat the first 280 characters as the product and everything after as a bonus for readers who are already sold. If your first 280 can't earn the click, the next 24,720 never get read.
There's also a stylistic argument. The 280 constraint forces a specific kind of editing — cutting hedges, collapsing clauses, choosing one idea per post — that longer formats let you skip. Most posts improve when they're forced under the limit, because the limit is really an editor.
When you're 5–20 characters over, don't reach for abbreviations first — "u" for "you" costs you more in credibility than it saves in characters. Work through this list instead: cut adverbs ("really", "actually", "very" almost never earn their keep); swap phrases for words ("in order to" → "to", "is able to" → "can"); delete throat-clearing openers ("I think that", "Just wanted to say"); replace "and" with an ampersand or comma where rhythm allows; and finally, question whether your last sentence adds anything the first two didn't. If you're 50+ characters over, the draft usually contains two ideas — split them, and you have a thread instead of a compromise.
The thread preview above splits over-limit text into numbered posts at word boundaries, and the decision rule is straightforward: trim when the extra material is decoration, thread when it's structure. A list of three examples, a setup-then-payoff story, or a claim followed by evidence all survive splitting because each post can stand alone. A single argument that needs every clause does not — trim that one. And if you thread, make the first post work as a standalone hook, because that's the only part most people will ever see in the timeline.
X wraps every URL in its t.co link shortener before publishing. The wrapped link is always billed at 23 characters against your limit, whether the original URL was 15 characters or 300. That's why pasting a long link doesn't blow up your count, and why shortening a link yourself saves you nothing.
X uses weighted counting, not raw character counting. Most Latin letters, digits, and punctuation count as 1, but emoji and CJK characters (Chinese, Japanese, Korean) count as 2, and URLs always count as 23. This counter reproduces those rules, so its number matches what the compose box will show.
Yes. Unlike links, @mentions and #hashtags are counted at face value — every character in them counts. The one exception is replies: usernames that appear in the reply chain above your text don't count, but any @mention you type inside the body does.
280 weighted characters for standard accounts. Premium subscribers can post up to 25,000 characters, but long posts get truncated in the timeline behind a 'Show more' link, so most writers still optimize the first 280 characters as the hook regardless of their limit.
No. The counter runs entirely in your browser with client-side JavaScript. Nothing you type is transmitted, stored, or logged anywhere.
If your text runs past 280 weighted characters, the tool automatically splits it into numbered posts of 280 characters or fewer, breaking at word boundaries. It's a quick way to see whether an over-limit draft works better as a two- or three-post thread than as an aggressively trimmed single post.
DeckPost drafts in your voice, schedules at your peak windows, and reviews the numbers with you every week.