Logo

MonoCalc

/

Text Chunk Splitter

Text

Caps every chunk at a maximum character length — the mode for SMS, posts and database columns.

Maximum characters per chunk.
Backs the cut up to the last whitespace so words stay whole.
Repeats the tail of each chunk at the head of the next one — the standard trick for RAG retrieval. Must be smaller than the chunk size.
280 characters ≈ 47 words ≈ 70 tokens
Same size in bytes: 280 ASCII, 280 UTF-8, 560 UTF-16. The word and byte figures use the ratios measured in your own text; the token figure is the rough four-characters-per-token rule of thumb, not a real tokenizer.

Sample setups

Paste an article, a transcript, a document or a list. Nothing leaves your browser.
0 characters

Chunk formatting

Prepended to every chunk. {n} becomes the chunk number and {total} the chunk count.
Appended to every chunk, with the same {n} and {total} placeholders.
A quick counter folded into the prefix, ahead of anything you typed above.
What divides the chunks in the combined output box below.
Decimal places used by the statistics table.

No chunks yet.

Nothing to split yet

Paste some text above, or load one of the sample setups, and the chunks appear here.

About This Tool

Text Chunk Splitter – Break Long Text Into Size-Limited Pieces

Almost every system that accepts text imposes a ceiling on it. An SMS segment holds 160 GSM-7 characters, a post on X holds 280, a meta description is truncated around 160, a database column is declared as VARCHAR(255), and an LLM prompt has a context window measured in tokens. Paste something longer and you get a truncation, an error, or a silently mangled record. This text chunk splitter divides a long block of text into numbered pieces that each respect the limit you set, without cutting words in half.

Seven ways to divide the text

Character mode is the common case: no chunk exceeds a maximum character count. Word, sentence, paragraph and line modes count units instead, so a chunk is always a whole number of them — useful for translation batches priced per word, for reading segments, or for cutting a log file into fixed blocks. N equal parts flips the question round: you say how many pieces you want and the tool computes the sizes, spreading the remainder one character at a time so no chunk is more than one character longer than any other and the last one is never a stub. Delimiter mode cuts wherever a literal string or a regular expression matches, with the option to keep or discard the match.

Boundary rules and over-limit chunks

In the two character-budget modes a boundary rule decides where a cut may land. The cut is pulled back to the last whitespace, the last sentence terminator, the last line break, or the last blank line, so the chunk stays readable. Sentence detection protects abbreviations such as Dr., Inc. and e.g., and a period followed by a digit rather than by whitespace — 3.14, example.com — never ends a sentence at all.

Why a chunk can come out longer than the limit
When a boundary rule is active the splitter refuses to break a token apart. If a single unbreakable run — a long URL, say — is wider than the chunk size, that chunk is extended forward to the next legal boundary and badged as over the limit, rather than being sliced mid-token. Choosing the Anywhere (hard cut) rule is the only setting that guarantees no chunk ever exceeds the size, because it is the only one allowed to cut inside a word.

Overlap for RAG and embeddings

Retrieval-augmented generation pipelines almost always chunk with an overlap window, and the tool supports one in every mode except delimiter. Each chunk repeats the tail of the one before it, measured in the same unit as the chunk size, so a sentence sitting across a boundary still appears whole inside at least one chunk and its embedding stays meaningful. When a boundary rule is active the repeated window is snapped back to a boundary too, so the overlap begins on a whole word. The statistics panel reports the overhead this costs in absolute characters and as a percentage of the original text.

Prefixes, suffixes and the size budget

Every chunk can carry a prefix and a suffix, both of which understand the {n} and {total} placeholders — which is how (1/7) thread counters get added in one pass. A numbering style offers 1., [1] and Chunk 1: as shortcuts, folded in ahead of anything you typed. The count affixes in size switch decides whether those characters eat into the budget. With it on, a 280-character limit and a nine-character suffix leaves 271 characters of body, so the finished post still fits; with it off the body gets the full 280 and the rendered chunk is longer.

Reading the results

Each chunk is rendered as its own card with a capacity bar, character, word and estimated-token counts, an overlap badge where one applies, and its own copy button. Above them a distribution chart draws one bar per chunk against a dashed target line, so an unbalanced split or an over-limit outlier is obvious at a glance. The summary table reports the total chunk count, the average, smallest and largest sizes, the overlap overhead, and wasted capacity — the share of the allotted budget the chunks did not use, which tells you how tightly the text packed. Token figures throughout use the familiar four-characters-per-token rule of thumb and are labelled as estimates; they are not the output of a real model tokenizer.

Counting, exporting and privacy

Lengths are measured in grapheme clusters, so an emoji built from several joined code points counts as one character and is never split down the middle. Because a byte limit is a different constraint from a character limit, the conversion panel also shows the chosen size in ASCII, UTF-8 and UTF-16 bytes, using ratios measured from your own text rather than an English-prose average. Finished chunks can be copied individually or all at once, or exported as TXT, CSV (index, text, characters, words, lines, tokens) or JSON for an ingestion script. Everything runs in the browser — no text is uploaded — with input capped at 2,000,000 characters and file loads at 2 MB. The share link carries your settings and, only when it is under 800 characters, the text itself.

Frequently Asked Questions

Is the Text Chunk Splitter free?

Yes, Text Chunk Splitter is totally free :)

Can I use the Text Chunk Splitter offline?

Yes, you can install the webapp as PWA.

Is it safe to use Text Chunk Splitter?

Yes, any data related to Text Chunk 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 Text Chunk Splitter work?

You pick a split mode and a size, and the text is divided accordingly. Character and equal-parts modes measure a budget in characters and walk the text until that budget is spent; word, sentence, paragraph and line modes tile the text into units of that kind and group a fixed number of them together; delimiter mode cuts wherever your string or regular expression matches. In the two character-budget modes a boundary rule then pulls each cut back to the last whitespace, sentence end, line break or blank line so nothing is sliced mid-word.

What happens if a single word is longer than the chunk size?

Whenever a boundary rule other than "Anywhere" is active the tool refuses to break the token apart. Instead it extends that chunk forward to the next legal boundary, so the chunk ends up longer than the size you asked for and is flagged with an over-limit badge. If you need a hard guarantee that no chunk ever exceeds the limit, choose the "Anywhere (hard cut)" boundary rule, which cuts at exactly the requested position.

What is the overlap setting for?

Overlap repeats the tail of each chunk at the head of the next one. It is the standard technique for retrieval-augmented generation: a sentence that straddles a boundary still appears in full inside at least one chunk, so its embedding stays meaningful. Overlap is measured in the same unit as the chunk size, must be smaller than the chunk size, and is reported back as an absolute character overhead and a percentage.

Are the token counts real LLM tokens?

No. The tool reports an estimate using the common rule of thumb of about four characters per token, and labels it as approximate throughout. Real tokenizers are model-specific and would need the model's vocabulary to run. Treat the estimate as a planning figure for sizing prompts, not as a billing number.

How are emoji and accented characters counted?

Lengths are measured in grapheme clusters using Intl.Segmenter where the browser provides it, falling back to code points otherwise. A family emoji built from several joined code points counts as one character and is never split down the middle. The statistics panel separately reports UTF-8 bytes, because a byte limit on an SMS gateway or a database column is a different constraint from a character limit.

Is my text uploaded anywhere?

No. All splitting happens in your browser and nothing is sent to a server. Files you load are read locally and capped at 2 MB, and pasted text is capped at 2,000,000 characters. The share link carries your split settings, and your text only when it is under 800 characters — longer text is deliberately left out of the URL rather than silently truncated.