Count and edit a draft
- Paste your text, type directly or import a local UTF-8 TXT file.
- Choose a language for word boundaries. Live counts update after a 450 ms pause; turn live counting off and use Count words for manual control.
- Enter your own maximum word count to see how much room remains or how far you are over. Edit and review the updated count.
- Copy or download the count summary, or save the editor text as TXT.
What counts as a word or character?
Words use the browser’s Intl.Segmenter boundaries. We count segments marked as word-like and segments containing Unicode letters or numbers, including Indic words that some browsers incorrectly flag as non-words. Punctuation and standalone emoji generally do not count as words; numbers and scripts without spaces can. Choose the language that best matches your text. Browser Unicode data, mixed-language input and document-editor rules can produce different counts, so use the destination’s rules when a strict submission limit matters.
Characters are grapheme clusters, approximating perceived characters. A family emoji or a Tamil base with attached signs can be one cluster but several code points or storage units. Excluding whitespace removes whitespace-only clusters, without joining text across boundaries. Paragraphs are blocks separated by blank lines; U+2029 always separates paragraphs. This is counting, not spelling, grammar or linguistic assessment.
Composed and decomposed accents remain as entered. No normalization, translation or legacy-font conversion. Technical definitions: Unicode segmentation and Intl.Segmenter.
Local files, clear and undo
TXT import checks UTF-8, rejects binary controls, removes an initial byte-order mark and converts CRLF/CR line endings to the editor’s LF. Invalid files preserve your current text and results; editing cancels an unfinished read. Pastes of 10,000 or more UTF-16 units are validated and inserted as one replacement to avoid slow native multiline insertion. Large paste, import, Use example and Clear text have one undo step kept in memory. Typing or changing language discards that replacement undo so it cannot overwrite subsequent edits. Clear text keeps your settings.
Privacy and limits
Text stays in memory and a local worker, with no upload, saved draft or external processing. Editing cancels obsolete counts and disables stale downloads. Cancel stops counting until another edit or manual retry. A ten-second worker timeout and 100,000 UTF-16-unit cap bound work. Composition pauses live counting until the character is committed. Browsers without Intl.Segmenter show an error; invalid unpaired surrogates reject so UTF-8 export does not silently replace them. Browser textarea newline normalization applies. Reloading leaves no saved text; downloaded files remain under your control.
For other tasks, use the character counter, paragraph counter or sentence counter.