Word & Character Counter

Count words, characters, Unicode grapheme clusters, sentences, paragraphs, reading/speaking duration, and platform limits instantly in your browser.

Enter or paste text above to see live character, word, sentence, and time statistics.

Adjustable Reading & Speaking Speeds (WPM)

Default 238 WPM (Brysbaert 2019 adult non-fiction benchmark)

Default 140 WPM (conversational & presentation pace)

Platform Character-Limit Progress Indicators

X (Twitter) Standard PostWithin limit: 0 / 280 (280 remaining)
X Developer Platform Docs (280 standard limit) (2026-10)
SMS Single Segment (GSM-7)Within limit: 0 / 160 (160 remaining)
3GPP TS 23.038 SMS Alphabet Standard (160 GSM-7 / 70 UCS-2) (2026-10)
Search Meta Description (Target)Within limit: 0 / 155 (155 remaining)
Google Search Central (Pixel-width truncation ~150–160 chars) (2026-10)
LinkedIn Feed PostWithin limit: 0 / 3000 (3000 remaining)
LinkedIn Help Center (3,000 character post limit) (2026-10)
Instagram Post CaptionWithin limit: 0 / 2200 (2200 remaining)
Instagram Help Center (2,200 character caption limit) (2026-10)
YouTube Video TitleWithin limit: 0 / 100 (100 remaining)
YouTube Help Center (100 character maximum) (2026-10)
Custom Character LimitWithin limit: 0 / 500 (500 remaining)
User-configured target limit (2026-10)

Browser-local processing: Text is analyzed directly in memory and is not sent to PeekAndDo servers or stored in browser storage. Standard device/browser security (such as clipboard access or installed extensions) still applies.

LIVE STATISTICS
0Words
0Characters (with spaces)
Characters (no spaces)0
Sentences0
Paragraphs0
Lines0
Reading Time0s
Speaking Time0s

Unicode Character & Encoding Breakdown

Intl.Segmenter
Unicode Grapheme ClustersUser-perceived characters (keeps compound emojis & accented letters together)
0
Unicode Code Points (Secondary)Scalar Unicode values (Array.from(text).length)
0
UTF-16 Code UnitsJavaScript string length (surrogate pairs count as 2)
0
Avg. Word Length
0

Top Word Frequency & Density

Enter at least two words to view frequency breakdown.

VISUAL EXPLANATION
Text composition diagram (Awaiting text input) Enter text to visualize graphemes, code points, and limits

Counting Methodology & Unicode Segmentation

The Word & Character Counter measures total words, characters with and without spaces, Unicode grapheme clusters, scalar code points, UTF-16 code units, sentences, paragraphs, reading/speaking time, and platform limit utilization.

Text is segmented using the ECMAScript Intl.Segmenter API (implementing Unicode Standard Annex #29) where available, with a deterministic Unicode property-escape fallback. User-perceived characters are counted as extended grapheme clusters so accented characters and multi-person emojis count as single visual characters, while scalar Unicode code points and UTF-16 code units are reported alongside as explicit secondary metrics.

Assumptions & Counting Rules

  • Primary character counts measure Unicode extended grapheme clusters (UAX #29), matching human visual perception of characters.
  • Secondary encoding metrics explicitly distinguish Unicode scalar code points (Array.from(text).length) and UTF-16 code units (text.length).
  • Default silent reading speed is 238 words per minute (Brysbaert 2019 meta-analysis for adult non-fiction reading); user-adjustable from 1 to 2,000 WPM.
  • Default speaking speed is 140 words per minute (conversational and presentation benchmark); user-adjustable from 1 to 2,000 WPM.
  • Whitespace normalization only executes when the user explicitly activates 'Normalize Whitespace' and never modifies text silently.

Text: "Hello world! πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦" (two words plus one compound family emoji)

Words (Intl.Segmenter word-like tokens): 2 words ('Hello', 'world').

Unicode Grapheme Clusters (with spaces): 14 characters (12 ASCII chars + 1 space + 1 family emoji cluster).

Unicode Code Points: 20 scalar values (the family emoji consists of 4 person code points joined by 3 Zero-Width Joiners = 7 code points).

UTF-16 Code Units: 24 units (each of the 4 person emojis is a surrogate pair of 2 UTF-16 units).

Result: 2 words, 14 grapheme clusters (12 without spaces), 20 code points, 24 UTF-16 code units.

A 476-word article read silently at 238 WPM and spoken aloud at 140 WPM.

Silent reading duration: (476 Γ· 238) Γ— 60 = 120 seconds = 2m 0s.

Speaking duration: ceil((476 Γ· 140) Γ— 60) = ceil(204) = 204 seconds = 3m 24s.

Result: Reading time: 2m | Speaking time: 3m 24s.

Authoritative Standards & Sources

Frequently Asked Questions

Why do Unicode grapheme clusters, code points, and UTF-16 code units differ?

A single visual character (grapheme cluster) such as a family emoji (πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦) or a letter with combining accents is perceived by readers as 1 character, but is composed of multiple Unicode scalar code points and even more 16-bit UTF-16 code units in JavaScript.

How are reading time and speaking time calculated?

Reading time divides total words by the reading speed (default 238 WPM based on Marc Brysbaert's 2019 meta-analysis of adult reading rates). Speaking time divides total words by the speaking speed (default 140 WPM for clear presentations). Both speeds can be customized.

Does this tool save or transmit my text?

No. Text analysis runs locally in your browser's memory without sending your text to PeekAndDo servers or saving it to localStorage. Keep in mind that standard operating-system clipboard history or third-party browser extensions you have installed operate under your device's own environment.