devtools

Word & Character Counter

Count words, characters, sentences, paragraphs, and reading time instantly. A free, private word & character counter that runs entirely in your browser.

Runs entirely in your browser — your data never leaves your device.

How to use Word & Character Counter

What it does & when you need it

You have a piece of writing and a limit to hit: a meta description that must land between 140 and 160 characters, an abstract capped at 250 words, a changelog entry, or a social post. This tool counts the words, characters (with and without spaces), sentences, paragraphs, and lines in your text, and estimates how long it takes to read — updating live as you type. Everything runs in your browser, so a draft of an unpublished post or an internal document never leaves your machine.

Paste the text once and read every metric at a glance, then copy a plain-text summary to drop into a ticket or a review.

How to use

  1. Type or paste your text into the text buffer, press Sample to load an example paragraph, or Upload a .txt or .md file.
  2. The stat tiles and the input status bar update on every keystroke — no button press needed. Watch the character count while you trim toward a limit.
  3. Read the full breakdown in the summary.txt panel below, then press Copy summary (or Ctrl/Cmd + Enter) to grab it, or use Copy on the panel. Press Clear to start over.

Things worth knowing

"Characters" depends on the unit you count in. JavaScript's String.length counts UTF-16 code units, so the grinning-face emoji 😀 is two and a musical symbol can be two as well. This tool counts by Unicode code point (it iterates the string with [...text]), so that emoji counts as one — which is almost always what a person means by "one character". Note that a code point still is not the same as a grapheme: an emoji with a skin-tone modifier, or a flag built from two regional-indicator symbols, is several code points that render as one glyph. The Unicode standard's text-segmentation rules (Annex UAX #29) define those boundaries if you need to go deeper.

Reading time assumes about 200 words per minute. That is a reasonable average for adult silent reading of general prose, and the estimate rounds up to the next whole minute. Dense technical writing, code samples, or a second language will be slower, so treat the figure as a floor rather than a promise.

Platform limits are not naive character counts. Twitter/X measures posts in weighted code points, where most Latin characters count as 1 but CJK ranges count as 2, and it counts every URL as a fixed length regardless of the real one. SMS is stranger still: a message encoded in GSM-7 (see 3GPP TS 23.038) fits 160 characters per segment, but the moment you include one character outside that alphabet — an emoji, or a curly quote — the whole message switches to UTF-16 and the limit drops to 70 per segment. So the number here is a good general count, not a substitute for a specific platform's own counter.

Word counting by whitespace is an approximation. Splitting on spaces treats a hyphenated term like "state-of-the-art" as one word, which may over- or under-count depending on your style guide, and it badly under-counts languages such as Chinese, Japanese, and Thai that do not put spaces between words. For Latin-script prose the whitespace count matches what editors report closely enough; for CJK text, character count is the more meaningful metric.

Once your text is measured, you might convert its case before publishing, sort a list of lines alphabetically, or diff two drafts to see exactly what changed between them.

Examples

Blog post intro

Our new dashboard cuts report build time from minutes to seconds. Here's how we did it, and what we'd change next time.

Watch the word count and reading-time estimate update live as you edit the paragraph.

Meta description check

A privacy-first word and character counter that runs entirely in your browser and never uploads a single keystroke you type.

Trim toward the 140-160 character sweet spot for an SEO meta description.

Multi-paragraph release note

Shipped: dark mode.

Fixed: the login redirect loop. Wait... was it ever actually broken?!

Blank lines split paragraphs, and grouped punctuation like '?!' or '...' each counts as one sentence.

Frequently asked questions

Why does an emoji count as two characters in some tools?

Many counters use JavaScript's String.length, which measures UTF-16 code units, so an emoji like 😀 counts as two. This tool counts by Unicode code point, so it counts as one, the way a person would. Note that some emoji built from skin-tone or flag modifiers are still several code points that render as a single glyph.

How is the reading time calculated?

It divides the word count by 200 words per minute, a typical adult silent-reading rate, and rounds up to the next whole minute. Dense technical prose, code, or a second language reads slower, so treat the figure as a minimum rather than a promise.

Does the character count match Twitter/X or SMS limits?

No. Twitter/X counts weighted code points, where CJK characters count as two and every URL is a fixed length, and SMS uses 160-character GSM-7 segments that drop to 70 the moment a non-GSM character like an emoji appears. Use this for a general count, not a platform's exact limit.

How are words counted?

A word is any run of non-whitespace characters, so the text is split on spaces, tabs, and newlines. That means a hyphenated term like 'state-of-the-art' counts as one word, and space-less languages such as Chinese, Japanese, and Thai are under-counted.

Is my text uploaded to a server?

No. All counting happens locally in your browser with JavaScript, so nothing you type or paste is ever sent anywhere. Once the page has loaded you can even use it offline.