Text Repeater
Repeat any text a set number of times, number each copy with a {n} token, choose a separator, then copy or download the result.
- Free, no account
- No watermark
- No usage limit
About the Text Repeater
Most text repeaters do exactly one thing. You hand them a word or a phrase, they stamp out identical copies, and they paste them together. That is genuinely useful when you want the same emoji sent forty times or a line written out to memorize it. It stops being useful the second you need the copies to differ, and that is where nearly every free repeater leaves you hand-editing the result afterward.
This one closes that gap. Put {n} anywhere in your text and each copy gets its own number, counting up as it goes. So Item {n} turns into Item 1, Item 2, Item 3 right down the list, and user_{n} becomes user_1, user_2, user_3. You choose where the count starts, and you can pad the numbers with leading zeros so they line up. Leave the token out and you get a plain repeat, exactly like before.
Everything runs in your browser. Your text is never uploaded, never stored, never logged, which makes it fine for private notes, draft copy, or internal data you would rather not hand to a stranger's server. When the output is ready you can copy it in one click, save it straight to a text file, or grab a Share link that reopens your exact setup on any device.
How to use
- Type or paste your text into the top box. It can be a single word, a full sentence, an emoji, a line of symbols, or several lines at once. Whatever you put in is treated as one unit and repeated.
- Add
{n}if you want numbered copies. Drop the token wherever the number should land, for exampleRow {n}ortest-{n}@mail.com. Skip it for a straight repeat. - Set the repeat count. Enter how many copies you want. Start small while you get the format right, then push the number up once it looks correct.
- Choose a separator. New line stacks each copy on its own row, Space and Comma keep them running along one line, None welds them together with nothing between, and Custom lets you type your own, like a pipe or a bit of markup.
- Copy, download, or share. The output builds instantly with a live character count. Copy it, save it as a
.txtfile, or grab a share link that carries all your settings.
Numbering each copy with {n}
The counter is the part that sets this apart. The token is literally the three characters {n}, and you can use it more than once in the same text. If a single copy contains two of them, both get the same number for that copy, so {n}. Line {n} gives you 1. Line 1, then 2. Line 2, and on it goes. That is handy for prefixing and labeling the same row at once.
Two small controls shape the count. The start value decides the first number, so you can begin at 1, at 0 for zero-indexed data, or at any figure you like when you are continuing a list that already reached 250. The leading-zeros option pads every number to the same width, turning 1, 2, 3 into 001, 002, 003. Padded numbers sort correctly in a plain text sort and keep filenames and IDs aligned, so a batch like invoice_0007 lands next to invoice_0012 in the right order instead of scrambling the way bare numbers do.
Put those together and a plain repeater becomes a small sequence generator. Numbered lists, mock user rows, sequential test IDs, a spreadsheet column with a running index. You type the pattern once, set the count, and read off the whole series.
Separators and the trailing option
The separator is the quiet setting that decides the shape of everything. New line is what most people reach for, since it gives a clean vertical column that pastes straight into a spreadsheet. Comma produces the text, text, text form you need for a CSV value or a list of arguments. None is for building one long unbroken string, which is what you want when you are testing a character limit. Custom is the escape hatch for anything else, a spaced pipe, an arrow, quotes wrapped around each copy, whatever the job needs.
Then there is the trailing option, which trips people up. Normally the separator only lands between copies, so three comma-joined items read text, text, text with nothing on the end. Turn trailing on and it gets added after the final copy too. That is what makes a list usable when every entry, the last one included, has to finish the same way, like config rows that all need a comma or a line break.
What people build with it
The obvious use is fun, sending a phrase or an emoji a hundred times over, which is exactly what plenty of people show up for. But the numbering turns it into a real work tool. Designers generate predictable filler to test how a layout wraps, and unlike random placeholder text you know the exact length of each copy. Developers and QA folks build test data fast, from a string of a precise character length to probe a field to fifty numbered records that seed a table before the real query. Teachers and students spin up numbered worksheets or practice lines. Anyone assembling a spreadsheet or a block of markup can crank out numbered rows without typing each one, that is dull work and a computer should be doing it.
Because the character count updates the instant you change anything, you can also tune the output to hit a hard limit exactly, say a 281-character string to check whether a box that claims a 280 cap really holds it.
A note on limits
All of this happens on your own device, using its memory, which is what keeps your text private. It also means there is a ceiling. A short phrase a few thousand times is instant. A long block repeated hundreds of thousands of times generates an enormous amount of text the browser has to hold and draw, and past a point the tab slows or freezes. So the repeat count is capped and the total output has a size ceiling. Cross it and the result gets trimmed and labeled, rather than the page hanging with no explanation. For everyday jobs you will never come near either one.
Frequently asked questions
Can I use more than one {n} in the same text?
Yes. Every {n} inside a single copy is replaced with that copy's number, so {n}) item {n} produces 1) item 1, then 2) item 2. Reach for it when you want to number and label the same row, or repeat the index in two spots.
Can I start the count at 0 or some other number?
You can start anywhere. The start field sets the first number, so 0 gives a zero-indexed run and setting it to 100 lets you continue a list that already reached 99. Each copy after that counts up by one from wherever you began.
What are the leading zeros for?
They hold every number to the same width so the results line up and sort correctly. Without padding, 2 sorts after 19 in a plain text sort, which scrambles filenames and IDs. Pad them to 002 and 019 and the order holds, which is why batch filenames and invoice numbers nearly always use it.
What does the trailing separator option change?
By default the separator only appears between copies, so nothing follows the last one. Turn trailing on and it is tacked onto the end too. Use it when every line in a list, including the final one, has to end with the same character, such as a comma for a config file or a line break for a clean paste.
Will a giant repeat count freeze the page?
Caps stop that from happening. The repeat count has an upper limit so one stray zero cannot lock things up, and the total output has a size ceiling. Cross it and the tool trims the result and marks it as truncated instead of stalling. If you genuinely need more, generate a large chunk, copy it, and repeat that where you are pasting.
Does my text get uploaded or saved anywhere?
No. The whole thing runs locally in your browser. Your text never leaves your machine, and it is gone the moment you close the tab. That is what makes it safe for private notes, unreleased copy, or internal company data.
Can I repeat emoji, symbols, or several lines at once?
Yes to all of it. A single emoji, a run of Unicode symbols, punctuation, or a multi-line block are each treated as one unit and repeated as-is. The character count reflects the full output, which helps when a platform limits you by characters rather than words.