Logo

MonoCalc

/

Twitter Thread Splitter

Social Media
A line containing only --- forces a break there and is removed from the output.

0 characters in

Settings

None of these starting values were checked against a platform's own published documentation when this tool was built, so none are presented as one. Per-post limits differ by platform and by account tier and have changed before — look up the current number for wherever you are posting and type it in.

Preview: …␣3/12

Paste or type some text above and the thread appears here as you write.

About This Tool

Twitter Thread Splitter – Break Long Text Into Numbered Posts

A thread splitter turns one long piece of writing into a sequence of posts that each fit a per-post character limit. Cutting text every N characters is a two-line loop, and it is wrong in several ways at once: it slices words in half, tears links apart, breaks emoji into replacement glyphs, and forgets that the 1/12 counter you bolt on afterwards is itself part of the post. This tool exists to get those details right, entirely inside your browser.

Characters mean what a reader sees

Ask JavaScript for the length of 😀 and it says two. Ask for the family emoji 👨‍👩‍👧‍👦 and it says eleven, because that single glyph is four people joined by invisible zero-width joiners. An é typed as e plus a combining accent counts as two. All of those are one character to a reader, and splitting inside any of them produces mojibake rather than text.

This tool counts grapheme clusters using Intl.Segmenter, so the number it shows is the number of characters a person would count by eye, and every split point sits on a cluster boundary. That is why the count here can disagree with a plain text editor — the disagreement is the whole point. Segmentation is also pinned to a single locale, so the same text always produces the same thread on every machine.

Where the splits land

Each post is filled to the budget and then the splitter walks backwards to the best boundary it can find, in a fixed order of preference:

  • Manual — a line containing only ---, which forces a break and is removed from the output.
  • Paragraph — a blank line.
  • Sentence — a real sentence end, not merely a full stop.
  • Line — a single newline.
  • Word — a genuine word gap.

Links are treated as single unbreakable tokens, so a URL always lands whole inside one post. The label under each card names which of these rules applied, which makes it obvious when a small edit to your source text would give you a tidier break.

The numbering problem

Adding 1/9 to a post costs three characters. Adding 10/12 costs five. The width of the counter depends on how many posts there are, and how many posts there are depends on how much room the counter leaves — a genuine circular dependency. Splitting first and numbering afterwards is the classic bug: a thread that fits in nine posts grows to ten once the counter widens, and some posts quietly end up over the limit.

This splitter resolves that loop before it cuts anything, repeatedly re-splitting until the post count stops changing and sizing every post against the widest counter the thread will use. Afterwards it re-measures every finished post against the limit and flags anything that still does not fit, rather than handing you an invalid thread.

Counting links

Some platforms bill every link at a fixed length no matter how long the address really is. You can switch that behaviour on and set the number yourself, and the readout then shows both figures so you can see the substitution working. The limit and the per-link figure are both editable fields rather than baked-in constants, because these numbers are set by the platform, differ between account tiers, and have changed before.

Check the number, do not trust the default
The starting values offered in the tool are conveniences to edit, not documentation. Look up the current per-post limit published by whichever platform you are posting to and type it in.

What it does not do

The splitter leaves your words alone. It does not reformat, reflow, suggest hashtags, add mentions, schedule anything, or connect to an account, and it makes no network requests of any kind — detected links are used only for counting and for keeping a split away from them. The only changes it makes are trimming whitespace at a split boundary and applying the numbering you chose.

For that reason it also takes no view on how long a post ought to be. No trustworthy source establishes what length performs best, so the tool reports what fits inside the limit and leaves the judgement to you.

Frequently Asked Questions

Is the Twitter Thread Splitter free?

Yes, Twitter Thread Splitter is totally free :)

Can I use the Twitter Thread Splitter offline?

Yes, you can install the webapp as PWA.

Is it safe to use Twitter Thread Splitter?

Yes, any data related to Twitter Thread Splitter only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does the thread splitter work?

You paste your writing and set a character limit. The tool fills each post up to that limit and then walks backwards to the last place a human would have stopped — a paragraph break first, then a sentence end, then a line break, then a word gap. Everything happens in your browser; nothing is uploaded, and the tool makes no network requests at all.

Why does the character count here differ from my text editor?

Most editors report UTF-16 code units, which is why they call a single emoji two characters and a family emoji such as 👨‍👩‍👧‍👦 eleven. This tool counts grapheme clusters — what a reader actually sees as one character — using Intl.Segmenter. That is also why it never cuts a post in the middle of an emoji, a flag or an accented letter. If your browser lacks Intl.Segmenter the tool falls back to code points and says so on screen.

Why did adding numbering change the number of posts?

The counter is part of the post, so it eats into the same limit the body does — and its width depends on the total. A suffix of 9/9 is three characters, while 12/13 is five. Adding two characters to every post can push the thread from nine posts to ten, which then widens the counter further. The tool resolves that loop before splitting, so the counter is always paid for up front rather than pushing posts over the limit afterwards.

What do the labels between the post cards mean?

Each label names why the split happened there: paragraph, sentence, line and word are the ordinary cases, in descending order of preference. Manual means you forced the break yourself. Forced means a single word or link was longer than the available space and had to be cut mid-token — those posts are flagged separately, and they are usually a sign to shorten a link or a very long word.

What does a line containing only --- do?

It forces a break at exactly that point and the marker line itself is removed from the output. Use it when you want a specific post to end somewhere the automatic boundaries would not choose, for example to give a punchline its own post. The text on either side is then split normally within the character limit.

Why is the character limit an editable field instead of a fixed number?

Per-post limits are set by each platform, differ between account tiers, and have been changed more than once. Baking one in would quietly go stale, so the limit is a field you control and the starting values offered here are unverified conveniences rather than documentation. Check your platform's current published limit and type it in — the same applies to the fixed length some platforms bill for every link.