Word Counter
See the shape of your writing. Count words, characters, sentences, and reading time as you type.
0 / 2,000,000 UTF-16 characters
Language & reading speed
Cleaned copy uses consistent line breaks and removes spaces at line ends. Your draft stays unchanged.
- Words
- —
- Characters
- —
- Without spaces
- —
- Sentences
- —
- Paragraphs
- —
- Lines
- —
- Avg. word length
- —
- Reading time
- —
- Speaking time
- —
Paste or type to start counting.
Waiting for text analysis
Updates after a 250 ms pause. Large text runs in a background worker.
Words that repeat.
Top 20 · case folded · at least 3 characters
GET A FEEL FOR YOUR DRAFT
A little context.
For every word.
Paste, choose a language, keep writing.
Counts update after a brief pause. Set the text language for word and sentence boundaries, then adjust the visible reading and speaking rates to suit your audience. Times are word count divided by your chosen rate; they are estimates, not a measure of comprehension.
What counts as a character?
Where supported, Intl.Segmenter counts graphemes: an accented letter or joined emoji can be one character. Words and sentence boundaries depend on language and browser data. “Without spaces” excludes whitespace graphemes. A paragraph is a run of nonblank lines; lines include a trailing empty line. The empty draft has zero lines.
Limits, stated plainly.
Maximum input: 2,000,000 UTF-16 characters, with no hidden truncation. Without workers, the maximum is 100,000. Without Intl.Segmenter, the marked approximate fallback counts Unicode code points and word patterns; CJK and Thai word boundaries are not reliable. Frequency uses words of at least three graphemes (code points in fallback), and the list is omitted beyond 20,000 distinct eligible words. Clear or leave the page to discard your draft and results. Clipboard access happens only when you click Copy.