AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I split long text into a numbered X (Twitter) thread?

Paste your text into a client-side thread maker and it auto-splits into a numbered thread whose every post fits X’s real weighted 280-character limit, breaking only at word, sentence and paragraph boundaries. Each post is measured with X’s own twitter-text weighting — a URL counts as 23 no matter how long, a CJK or emoji code point counts as 2 — not a naive character count, and room for the numbering marker ((1/n), 1/, 🧵 or none) is reserved so a numbered post never overflows. You then edit, merge, split, reorder (drag) or add posts in a card list, watching each post’s live count, before copying one post, copying the whole thread or downloading a .txt. It never connects to X, so posting is manual and nothing is uploaded.

  • Auto-splits at word / sentence / paragraph boundaries under the weighted 280 limit
  • Real twitter-text weighting: URL = 23, CJK & emoji = 2, long words / links broken safely
  • Numbering styles ((1/n), 1/, 🧵, none) with room reserved so posts never overflow
  • Editable cards: merge, split, reorder (drag), add — each shows a live weighted count
  • Add a hook first post and a CTA last post; copy one / all or download .txt — 100% client-side

What is

Twitter / X Thread Maker

A Twitter / X thread maker (or tweet splitter) is a tool that breaks a long piece of text into a sequence of connected posts — a thread — each within X’s per-post character limit, adding position numbering like “(1/7)”. A good one measures length with X’s published twitter-text weighted algorithm (a shortened t.co URL costs 23, CJK and most emoji cost 2) rather than string length, splits only at word, sentence or paragraph boundaries so no word is cut, and reserves room for the numbering marker so a numbered post never exceeds the limit. It prepares the posts for you to publish manually; it does not log in to or post on X.

Social Media

Related terms

tweetstormtweet splittertwitter-textweighted character count280 limitt.co URLhookcall to actionX Premium

Frequently Asked Questions

No. It splits, counts and formats everything in your browser and you paste each post into X yourself — nothing is uploaded and there is no login.

The thread maker is 100% client-side. Your draft is just a string in the page: every split, weighted count and edit runs on your device in JavaScript, with no server call, no account and no tracking anywhere in the tool. It deliberately does not connect to X — it cannot log you in, schedule or publish — so posting is manual: you copy one post, copy the whole thread (blank-line separated) or download a .txt, then paste each post into the X composer in order. The tool works offline once cached, closing the tab discards your work, and the only optional network use on the site is consent-gated ads that never see your text.

It uses X’s real twitter-text weighting: a URL counts as 23, CJK and most emoji count as 2, everything else 1 — matching the composer for everyday posts.

Length is measured with the same weighted algorithm X publishes as the open-source twitter-text library, not a naive string length. Every URL is treated as a shortened t.co link worth exactly 23 characters however long it really is; characters from CJK scripts (Chinese, Japanese, Korean), Arabic, Hebrew and most emoji weigh 2 because they take about twice the visual width; ordinary Latin letters, digits, spaces and common punctuation weigh 1. The packer uses these weights when deciding where to break, and reserves room for the numbering marker, so a post that fits here fits in the composer. X additionally NFC-normalises text before counting, which only changes rare pre-composed sequences, so verify unusual input against the live composer.

Choose (1/n), 1/, a 🧵 thread emoji, or none. The tool reserves room for the marker on every post, so numbering never causes an overflow.

You can number each post as “(1/7)” (a parenthesised counter with the total), “1/” (the classic tweetstorm running counter), a 🧵 thread emoji on the first post with a plain counter after, or no numbering at all — and the marker recomputes live as you split, merge or reorder. Because the marker adds a few characters, the splitter reserves the worst-case marker width (including two-weight emoji) from every post’s budget before packing, so a numbered post can never exceed the limit. If you later edit a post by hand and push it over, its card flags the overflow in real time so you can trim or split it.

Yes. Edit any post inline, merge one into the next, split one in two, drag to reorder, or add and delete posts — each card shows a live weighted count and over-limit warning.

Auto-split gets the thread most of the way there; then you take full manual control in the card list. You can edit a post’s text inline, merge a post into the following one, split a post at the sentence or word boundary nearest its middle, drag a card (or use the up / down buttons) to reorder, and add or delete posts anywhere. Every card shows its live weighted count in an X-style ring and turns red when it exceeds the limit, and the numbering re-flows automatically. When you edit by hand the text box stops driving the cards; a “re-split from text” button rebuilds the thread from the box and your current options whenever you want to start over.

Detailed Explanation

How It Works

What the Twitter / X Thread Maker Does

The tool turns one long piece of text into a numbered X (Twitter) thread — a sequence of connected posts — each within X’s per-post character limit. You paste your text into a big composer and it is auto-split at word, sentence and paragraph boundaries so no word is ever cut, with every post measured by X’s real weighted length rather than a naive character count. You pick a numbering style ((1/n), 1/, a 🧵 thread emoji, or none), optionally add a scroll-stopping hook as the first post and a call-to-action as the last, and toggle whether whole sentences and separate paragraphs are kept together. The result is an editable list of post cards — each showing a live weighted count — that you can fine-tune before copying one post, copying the whole thread, or downloading a .txt.

  • Auto-splits long text into a numbered thread under the weighted 280 limit
  • Breaks only at word / sentence / paragraph boundaries — no cut words
  • Numbering styles: (1/n), 1/, 🧵 thread emoji, or none
  • Optional hook first post and CTA last post; copy one / all or download .txt
Methodology

How the Split Is Computed

A pure engine (threadMakerEngine.ts) does the work on top of the shared twitter-text weighting engine (twitterCountEngine.ts), with no network and no AI. It first segments the text: into paragraphs at blank lines, then into sentences (breaking on . ! ? …) when “keep sentences” is on, or into words otherwise. It then greedily packs those segments into posts, appending each segment while the post’s weighted length stays within a budget, starting a new post when it would overflow, and hard-splitting any single segment (a very long word) that is bigger than a whole post. Crucially the budget is the limit minus reserved room for the numbering marker, whose width depends on the post count — a chicken-and-egg dependency the engine resolves by iterating until the count converges. Manual edits (merge, split, reorder, add) then mutate the post list directly, and the numbering re-flows live.

  • threadMakerEngine.ts reuses twitterCountEngine.ts weighting; deterministic, no AI
  • Segments by paragraph, then sentence or word; greedy packing within a budget
  • Over-long single words / tokens are hard-split so nothing exceeds a post
  • Marker width reserved from the budget; post count converges by iteration
Technical Details

X’s Weighted Character Count

X does not count characters naively. Its open-source twitter-text algorithm assigns a weight to each code point and sums them: ordinary Latin letters, digits, spaces and common punctuation weigh 1, while characters from CJK scripts (Chinese, Japanese, Korean), Arabic, Hebrew and most emoji weigh 2 because they occupy roughly twice the visual width. Every URL is transformed to a t.co short link and counts as exactly 23 regardless of its real length, and a whole RGI emoji sequence (including flags and ZWJ sequences) counts as one 2-weight unit. This tool applies the same weighting when packing, so a 90-character link only spends 23 of your budget and a line of Japanese spends 2 per glyph. That is why a paste that looks like 400 “characters” can fit in two or three posts when it is mostly URLs, or need more posts when it is CJK or emoji-heavy.

  • Latin / digits / spaces = 1; CJK, Arabic, Hebrew, emoji = 2
  • Any URL = exactly 23 (a t.co link), whatever its real length
  • A whole RGI emoji sequence counts as one 2-weight unit
  • Weighted budgeting matches the composer far better than string length
Limitations

Honest Limitations

The splitting is rule-based, not intelligent: it never rewrites, shortens, summarises or generates copy, and it will not judge whether a break reads well — that is what the editable cards are for. Sentence detection is a heuristic that breaks on . ! ? … followed by whitespace, so it can mis-handle abbreviations (“Dr.”), decimals (“3.14”) or ellipses in the middle of a thought. The weighted count matches X’s composer for everyday posts, but X additionally NFC-normalises text before counting, which can shift the total for rare pre-composed or decomposed sequences, so verify unusual input against the live composer. Most importantly, the tool does NOT connect to X: it cannot log in, schedule or post, and it does not know your account tier — the free limit is 280 but X Premium allows much longer posts. Limits, tiers and the weighting config can change, so always confirm in the app before publishing.

  • Rule-based only — never rewrites, summarises or generates text
  • Sentence detection is heuristic (abbreviations / decimals can fool it)
  • X NFC-normalises before counting; verify rare sequences in the composer
  • No connection to X — manual posting; 280 free vs longer X Premium posts
Privacy & Security

Private by Design

Everything — segmentation, the weighted count, marker rendering, and every merge / split / reorder — runs on your device in JavaScript. The tool never contacts X or any backend, needs no login or token, uploads nothing and stores nothing on a server; your draft is only ever a string in the page. There is no account, database, analytics or telemetry, and the tool works offline once cached, so closing the tab erases your thread. Exporting is local too: copying a post or the whole thread uses the clipboard, and the .txt download is generated in the browser from a Blob. The only optional network use anywhere on the site is consent-gated advertising, which never sees your text.

  • No connection to X, no backend, no login or token
  • Draft is a local string; nothing uploaded, logged or stored
  • Clipboard and .txt export are generated in the browser
  • Works offline once cached; only optional network use is consent-gated ads
How X weights different content when packing a post (weighted length vs naive length)
Content in a postNaive lengthX weighted length
Plain Latin textn charactersn (1 each)
A long URL (any length)e.g. 9023 (a t.co link)
CJK / Arabic / Hebrew glyph1 char2 each
An emoji (incl. flags / ZWJ)1–8 code units2 (one unit)
Numbering marker “(1/7)”5 characters5 (reserved from the budget)

The tool budgets each post with the weighted length and reserves room for the numbering marker, so a post that fits here fits in the X composer. X also NFC-normalises text; verify rare sequences against the live composer.