Text Tools
Count words, sort and deduplicate lines, strip whitespace and number lines. Nothing you paste ever leaves your browser.
Word Counter
Count words, characters, sentences and paragraphs live, with reading time, keyword density and emoji-accurate character counts.
Reverse Text
Reverse text by character, word or line order, with grapheme-aware reversal that keeps emoji and accented letters whole instead of breaking them.
Remove Duplicate Lines
Remove duplicate lines from a list, keep the first or last occurrence, ignore case or whitespace, and see how many went.
Sort Lines
Sort lines alphabetically, numerically, by length or at random, with natural sort so item2 lands before item10, and locale-aware comparison.
Whitespace Remover
Trim lines, collapse spaces, drop blank lines and swap tabs for spaces, and find the invisible characters that break things.
Line Numbering
Add line numbers to any text with a custom start, step, padding and separator, or strip numbers off text that already has them.
Lorem Ipsum Generator
Generate placeholder paragraphs, sentences, words or list items in Latin or plain English, as text or HTML, from a seed the link remembers.
Find & Replace
Find and replace text in your browser, in plain or regex mode, with match case, whole word, a live match count and highlighted matches.
What is in this section
8 tools for working on a list or a block of text: sorting, removing duplicates, counting words and characters, numbering lines, reversing, and stripping whitespace. They cover the jobs that are too small to write a script for and too fiddly to do by hand, like deduplicating an export before it goes into a spreadsheet, or checking whether a meta description fits in 160 characters.
Unicode is handled properly
Counting characters is simple until an emoji arrives. A flag is two code points, a family emoji can be seven, and JavaScript's String.length counts UTF-16 units rather than either. These tools count graphemes, which is what a person means by "character", and the reverse tool keeps emoji and accented letters whole instead of splitting them into pieces.