Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Text Splitter

Cut long text into numbered parts that never break a word or a sentence.

Text No upload Works offline Free, no sign-up

The text is split in your browser; nothing is uploaded.

How to split

Presets
Split by

Repeated at the start of the next part. 0 = none.

Loaded once when you split by tokens (o200k_base about 1 MB, cl100k_base about 450 KB).

Exact text; capital letters count.

Next steps

About the Text Splitter

Paste a long text — an article, a transcript, a log file or a whole book — and cut it into numbered parts of a size you choose: a number of characters, words, sentences, paragraphs, lines or AI tokens, a number of equal parts, or wherever a marker such as --- appears. Parts end at the end of a sentence (or a paragraph, a line or a word, as you prefer), so nothing is cut in the middle of a word unless a single word is longer than the limit — and then the part is flagged.

Presets cover the common jobs: an X thread of 280-character posts numbered 1/5, 2/5…; SMS messages that fit in one text message (160 characters, or 70 when the text has characters outside the GSM alphabet); chatbot prompts with instructions that tell the AI to wait for all parts; RAG chunks with overlap for embedding; and CSV files split into files of 1,000 rows with the header row repeated. Copy each part, copy them all, or download them as one .txt file, a .zip with one file per part, or JSON. Files up to 50 MB are split in your browser; nothing is uploaded.

How to use it

  1. Paste your text, or use Open file (or drop a file on the box) for a .txt, .md, .csv or .log file.
  2. Pick a preset, or choose what to split by — for example Characters — and how big each part may be.
  3. Choose where parts may end (Sentence ends is a good default), and an overlap if each part should repeat the end of the one before it.
  4. Pick a numbering style. For limits that count characters or tokens, the numbering is counted too, so every part still fits.
  5. Copy each part with its Copy button, or use Copy all, .txt, .zip or .json.

Examples

An X thread: 280 characters per post, numbered
Input
A long post of 700 characters…
Result
Post 1 … 1/3
Post 2 … 2/3
Post 3 … 3/3

Each post ends at a sentence end and is counted the way X counts: every link as 23 characters, Chinese, Japanese and Korean characters and emoji as 2.

RAG chunks for embeddings: 512 tokens with 64 tokens of overlap
Input
A 20-page document
Result
Chunks of up to 512 tokens; each starts with the last sentences of the chunk before it

Download .json to get every chunk with its position (start and end offsets) in the original text.

A CSV file split into files of 1,000 rows
Input
orders.csv with a header row and 25,000 rows
Result
orders-part-01.csv … orders-part-25.csv, each starting with the header row

Choose the CSV by rows preset, then .zip. Line endings are kept exactly.

Sentences, never cut in the middle
Input
Dr. Rao arrived at 9 a.m. She sat down. The meeting began.
Result
Part 1: Dr. Rao arrived at 9 a.m. She sat down.
Part 2: The meeting began.

With 2 sentences per part. Abbreviations such as Dr., e.g. and No. 5 do not end a sentence.

Common uses

  • Turning a long post into an X thread, or an announcement into SMS-sized messages.
  • Pasting a long document into ChatGPT or another chatbot in parts it accepts.
  • Chunking documents for retrieval-augmented generation (RAG), embeddings and vector databases.
  • Splitting a large log, CSV or text file into smaller files for upload limits or spreadsheets.
  • Breaking a book or transcript into chapters at a marker such as “Chapter” or ---.

Where a part ends

Each part is filled with as much text as fits, then ends at the last place of the kind you choose:

  • Paragraph breaks where possible keeps whole paragraphs together; a paragraph that is too long is split at sentence ends.
  • Sentence ends fills parts with whole sentences. Sentences are found with the Unicode sentence rules plus a list of abbreviations, so Dr. Smith or e.g. Python is not split.
  • Line breaks keeps lines together, for lists and logs.
  • Between words fills parts the most, cutting only at spaces. Chinese, Japanese, Thai, Lao, Khmer and Myanmar text has no spaces, so it is cut between words found by your browser’s word segmenter.
  • Anywhere (characters only) cuts at exactly the limit, but never inside a character such as an emoji.

If a single word, link or long number is longer than the limit, it is cut between characters and the part is marked Ends inside a word.

How each limit is counted

  • Characters are what you see as one symbol: an emoji with a skin tone, a flag or an accented letter counts once.
  • AI tokens are counted with OpenAI’s tokenizers: o200k_base (GPT-5, GPT-4.1, GPT-4o and the o-series) or cl100k_base (GPT-4 and GPT-3.5 Turbo). Each final part, numbering included, is counted exactly. Claude, Gemini, Llama and other models use their own tokenizers, so their counts differ: leave some room.
  • X posts use X’s weighted count: a link always counts as 23 characters, and Chinese, Japanese and Korean characters and emoji count as 2.
  • SMS: one message holds 160 characters of the GSM 7-bit alphabet, or 70 when it contains any other character — ₹, emoji, Hindi or curly quotes. A long SMS is sent in segments of 153 (or 67) characters, because each segment carries a header that joins them; choose more segments per message for long SMS.
  • Words are counted between spaces (Chinese, Japanese and Thai words with the word segmenter); lines include empty lines.

Overlap for RAG and chatbots

With an overlap, each part starts with the end of the part before it, so a sentence that answers a question is not lost at a boundary. The overlap is made of whole sentences when they fit (otherwise whole words), and it counts towards the part’s size. For embeddings, try chunks of a few hundred tokens with an overlap of about a tenth to a fifth of the chunk, then check the answers you get and adjust.

Numbering and chatbot instructions

Numbering is added only when there are two or more parts: “1/5” at the end (as in X threads), “(1/5)” at the start, a “Part 1/5” line on top, or your own text before and after each part with {n} and {total}. Instructions for an AI chatbot wraps each part in a short note that asks the chatbot to reply only “Part 1/5 received” until the last part arrives, so it reads the whole text before it answers. For character, token, X and SMS limits, the numbering is counted as part of the limit.

Splitting large files

Open a text file of up to 50 MB; files over 1 million characters open read-only, showing only their beginning, but the whole file is split. Lines and Equal parts keep the text exactly, including Windows line endings, so joining the parts gives back the original file. The .zip download names the files after the original (orders-part-01.csv, orders-part-02.csv …) so they sort in order. The work runs in a background thread, so the page stays responsive.

Limitations

  • Sentence detection follows rules, not grammar: an unusual abbreviation can still end a sentence early, and a sentence without a full stop (a heading or a list item) ends at its line break.
  • Token counts are exact for OpenAI models only; other AI models count tokens differently.
  • Lines, equal parts and markers keep the text exactly; the other modes remove spaces and blank lines at the edges of each part.
  • The page shows the first 100 parts; Copy all and the downloads always include every part.
  • Markers are matched exactly as typed, including capital letters; regular expressions are not supported.

Privacy

Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot. Splitting by AI tokens downloads the tokenizer (about 1 MB) from this site once. Your text is never uploaded.

Frequently asked questions

How do I split text every 280 characters without cutting words?

Choose the X thread preset, or X posts under Split by. Each post ends at a sentence end, or between words when a sentence is longer than one post, and the “1/5” numbering is counted in the 280 characters.

How do I paste a long document into ChatGPT?

Choose the Chatbot prompt preset: parts of up to 4,000 tokens, each with instructions that ask the chatbot to wait until all parts have arrived. Copy and send the parts in order. Lower the token limit if your chat app rejects a part.

How do I split a CSV file and keep the header in every file?

Choose Lines, set the number of rows per file and tick Repeat the first line (a header row) in every part — or use the CSV by rows preset. Then download the .zip.

Why does a part say “Ends inside a word”?

A single word, link or number in it is longer than the limit, so it had to be cut between characters. Raise the limit if the word must stay whole.

Are the parts exactly the same size?

No. Parts are as full as possible but end at the nearest sentence, line or word boundary before the limit, so some are shorter. Choose Anywhere (exact length) to cut at exactly N characters, or Equal parts to get parts of about the same length.

Is my text uploaded?

No. Everything is split in your browser, in a background thread on your device. Only the tokenizer code is downloaded from this site the first time you split by AI tokens.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.