sitekits.dev
press ⌘K to switch tools
TEXT

Word & Character Counter

Count words, characters, lines, and more.

local
text-counter
Characters
0
Characters (no spaces)
0
Words
0
Lines
0
Bytes (UTF-8)
0
§01 ABOUT THIS TOOL

Overview

A live text counter for anything you need to fit into a limit: meta descriptions, tweet-length copy, form fields with byte limits, git commit subjects. It reports five stats simultaneously — Characters, Characters (no spaces), Words, Lines, and Bytes (UTF-8) — recalculated on every keystroke. Characters are counted as Unicode code points, so emoji and CJK text are counted correctly rather than as surrogate pairs.

How to use

  1. Type or paste into the text area (Type or paste text…).
  2. Read the stats grid below — all five values update instantly as you edit.

Examples

  • Hello world → Characters 11, no spaces 10, Words 2, Lines 1, Bytes 11
  • こんにちは → Characters 5, Words 1, Bytes (UTF-8) 15 (3 bytes per character)
  • A two-line commit message → Lines 2, useful for checking the 50/72 rule

Notes

Line counting treats \n, \r\n, and \r as line breaks equally. The whitespace-based word count matches typical English conventions but is not meaningful for unspaced scripts. The byte count reflects UTF-8 encoding — the number that matters for database column limits and HTTP header size.

FAQ
Is my text sent to a server?
No. Counting runs entirely in your browser on every keystroke. Nothing is uploaded, stored, or logged.
How are characters counted for emoji and multi-byte text?
Characters are counted as Unicode code points, so an emoji like 😀 counts as 1 character even though it occupies 2 UTF-16 code units and 4 UTF-8 bytes. The Bytes (UTF-8) stat shows the actual encoded size.
What counts as a word?
Words are runs of non-whitespace separated by spaces, tabs, or newlines. Languages written without spaces, such as Japanese, are therefore counted as one word per continuous run — use the character counts for those.