Split text into chunks

Breaks long text into equal parts by characters, words or lines.

Set a size, choose whether it counts characters, words or lines, and press the button. The text is cut into consecutive parts of that size with a separator between them.

The thing nobody else does: word-safe splitting

Cutting text every 280 characters is easy and produces garbage, because the cut lands in the middle of a word and sometimes in the middle of a URL. With "Do not split words" on — the default — each chunk ends at the last whole word that fits, so no chunk exceeds your limit and no word is ever broken in half.

This is the difference between a tool you can actually post from and one that makes you fix every join by hand. Turn it off only when you need mathematically exact blocks, for example when splitting a key or an encoded string where the characters have no word boundaries.

Posting within a character limit

The most common reason people land here: a piece of writing is too long for one post and has to become a thread. Set the size to the platform limit, leave word-safe on, and tick "Number the parts" so each chunk is prefixed with [1/5] and readers know how many are coming.

Leave yourself room. If the limit is 280 and you add [10/12], that marker is part of the post — set the size to about 270 so the numbering fits. Our post character counter counts the way the platform does, including the fixed weight it gives links, if you want to check a chunk before publishing.

Other uses

The separator

By default chunks are separated by a line of dashes on its own line, which is easy to see and easy to delete. Type whatever you prefer — \n is a newline, so \n\n is a blank line between chunks. If you plan to paste the parts one at a time, a visible marker is worth keeping; if you are feeding the output to something else, clear the field to a single newline.

Doing it without this tool

Excel: there is no clean way. Formulas with MID and a helper column of offsets work for fixed-size character chunks and cannot do word-safe splitting at all.

Python: [s[i:i+n] for i in range(0, len(s), n)] is the answer you will find on every tutorial site — and it is exactly the naive version that splits words in half. Word-safe splitting needs textwrap.wrap(s, n) instead, which most of those tutorials do not mention.

Command line: split -b 280 file.txt for bytes, split -l 100 file.txt for lines. Both write separate files rather than one annotated output, and the byte version is not word-safe or Unicode-safe.

Try:
0Words
0Characters
0No spaces
0Sentences
0Paragraphs
0Lines
0Pages
0Reading
0Speaking

Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.

How to use it

  1. Paste your text into the box.
  2. Set the chunk size and choose whether it counts characters, words or lines.
  3. Leave "Do not split words" ticked so no chunk cuts a word in half.
  4. Press "Split into chunks" and copy the parts you need.

Related tools

Text repeaterRepeats your text as many times as you want, with any separator.Filter linesDeletes — or keeps — every line that matches a word or pattern.Add line numbersNumbers every line, in the format you choose — and removes numbering too.Compare two listsFinds what is only in list A, only in B, in both, or different between them.Username generatorReadable names built from real words. No xX_ padding, no forced digits.Cursive textHandwriting-style letters you can paste anywhere plain text goes.Instagram caption lengthThe hard limit is 2,200 characters. The one that matters is the 125 you see…

See all text tools →

Frequently asked questions

Will it cut a word in half?

Not with "Do not split words" ticked, which is the default. Each chunk ends at the last whole word that fits, so it stays within your limit. Untick it only when you need exact blocks, such as splitting an encoded string.

How do I split a long post into a thread?

Set the size to the platform limit minus about ten characters, tick "Number the parts" and split by characters. The numbering itself takes up characters, which is why you leave the margin.

Can I split by number of lines instead?

Yes, choose Lines in the "Split by" dropdown. That is the usual choice for batching a list into groups for an importer.

What separator does it put between chunks?

A line of dashes by default. You can type anything into the separator field, and \n is treated as a newline.

Is there a maximum text size?

No fixed limit — everything runs in your browser, so it is bounded only by your device memory.