How to use the text repeater
- Type or paste your text into the top box.
- Set Number of times. The default is 10.
- Choose a separator: New line, Space, Comma, None, or Custom.
- Tick Add separator after last if the final copy needs a trailing one too.
- Tick Number each repetition to put a counter in front of every copy, then set Start numbering at if the list should not begin at 1.
- The output rebuilds as you type. Press Copy result to take it.
The output box is read-only, and the small line beneath it reports how many characters you just built, separators counted. Joining happens in your browser with plain JavaScript, so the text you paste is not sent to a server.
Leave the top box empty and you get nothing back, however high the count is set.
The ceiling nobody mentions
This tool stops at 100,000 repeats. That is a deliberate guard, not the real limit, and the real limit belongs to the browser.
V8, the JavaScript engine inside Chrome and Edge, refuses to build a single string longer than536,870,888 UTF-16 code units on a 64-bit machine. Cross it and you getRangeError: Invalid string length. Node.js publishes the same figure asbuffer.constants.MAX_STRING_LENGTH, andMDN records both that number and the smaller 32-bit ceiling of 268,435,440. Firefox sits higher, at just over a billion.
Do the division and the practical rule falls out. At the full 100,000 repeats joined by new lines, a source block of more than about 5,367 characters pushes the result past what Chrome will hold.
Short phrases will never come close to that. A repeated paragraph of two or three thousand words will, so cut the count rather than the text if the browser starts to labour.
What each separator actually inserts
The presets are not all what their names suggest, so it is worth knowing the exact strings:
- New line inserts a single line feed, so copy 1 ends and copy 2 starts on the row below.
- Space inserts one space character. No more.
- Comma inserts a comma and a space, giving
apple, apple, applerather thanapple,apple,apple. - None inserts an empty string, so the copies run together with no gap.
- Custom inserts exactly what you type, spaces and all. Nothing is trimmed off either end.
One consequence catches people out. Because None resolves to an empty string, tickingAdd separator after last alongside it changes nothing at all. There is no character to append. Pair the trailing option with New line or Comma instead, which is the usual reason for wanting it: a list where every row, including the last, ends in a comma or a break.
Where a repeater earns its keep
Developers reach for it first. Placeholder blocks stress-test a layout far better than one polite sentence of Lorem Ipsum, and a repeated string makes quick mock data for a table you are still designing. Testers use it to push a field to its stated maximum and watch what happens.
Spreadsheet work is the other big one, and it comes with a hard number attached. Microsoftcaps a single Excel cell at 32,767 characters, so a comma-joined list built here will be silently rejected or truncated once it passes that mark. Split the run across several cells before you paste, or drop the separator to a new line and let each copy claim its own row. Beyond that sit the everyday jobs: practice lines for handwriting drills, a repeated word for a social post, a chorus pasted out for a lyric sheet, a template row copied out forty times before anyone fills it in. None of that is glamorous, but all of it beats holding Ctrl+V.
Numbering, and where it starts
Turn on numbering and each copy gains a prefix in the form 1., then 2., then3. The number, a full stop, one space. That is the whole format.
Start numbering at accepts anything from -999999 to 999999, which matters more than it sounds. Continuing a checklist that already runs to item 47? Start at 48 and paste the block straight on the end. Building a countdown or a zero-indexed set of rows? Start at 0, or at a negative value, and the counter climbs from there.
Worth knowing if your source text spans several lines: the counter is added once per repetition, in front of the whole block, not in front of every line inside it. For a numbered line-by-line list, repeat a single line at a time.
Frequently asked questions
How do I put each repeat on its own line?
Choose the New line separator. Every copy then sits on its own row in the output, ready to paste into a spreadsheet column or a plain text file.
How much text can this actually produce?
The count is capped at 100,000 repeats, and going over that trims the request back to the cap with a short note under the output. The stricter limit is the browser's: Chrome will not hold a string longer than 536,870,888 characters, which works out at roughly 5,367 characters of source text if you ask for all 100,000 repeats on separate lines.
Does the Comma separator add a space as well?
Yes. It inserts a comma followed by a space, so you get red, green, blue. If you want the copies packed with no space, pick Custom and type a single comma instead.
Can I use my own separator?
Pick Custom from the dropdown and a box appears for it. Type a pipe, a dash, three spaces, an arrow, a short phrase, anything you like. It goes in between every copy exactly as typed.
Why does "Add separator after last" sometimes do nothing?
Because the separator is empty. With None selected there is no character to append, so the setting has no effect. Switch to New line, Comma or a Custom string and the trailing copy appears.
Can the numbering start somewhere other than 1?
Yes. Set Start numbering at to any whole number between -999999 and 999999, and the first copy takes that value while the rest count up from it. Handy for carrying on a list you began elsewhere.