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
- Feeding text to a tool with an input cap. Translators, summarisers and text-to-speech services usually cap the input. Splitting by words rather than characters tends to give more natural boundaries here.
- Batching a list. Split by lines to turn 5,000 rows into 50 batches of 100 for a system that imports a hundred at a time.
- Study material. Break a long chapter into readable sections.
- Subtitles and captions. Splitting by characters with word-safe on produces lines that fit a caption box.
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.
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
- Paste your text into the box.
- Set the chunk size and choose whether it counts characters, words or lines.
- Leave "Do not split words" ticked so no chunk cuts a word in half.
- Press "Split into chunks" and copy the parts you need.
Related tools
Frequently asked questions
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.
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.
Yes, choose Lines in the "Split by" dropdown. That is the usual choice for batching a list into groups for an importer.
A line of dashes by default. You can type anything into the separator field, and \n is treated as a newline.
No fixed limit — everything runs in your browser, so it is bounded only by your device memory.