Tools / Text utilities
Text utilities: sort, dedupe, count, change case
Line operations work on the input and write to the output, so the input stays intact. Counters update as you type.
What the counters count
"Characters (as seen)" counts grapheme clusters with Intl.Segmenter, so a flag or an accented letter written with a combining mark counts as one. Code points count what Array.from(s).length gives. UTF-16 units are s.length, which counts most emoji as two. UTF-8 bytes are what a database column or an HTTP body limit usually measures. é written as one code point is 2 bytes; written as e plus a combining accent it is 3.
Sorting
Sorting uses Intl.Collator with English rules. With natural order on, file9 comes before file10. With it off, the order is lexical, as in sort without -V. "Remove duplicates" keeps the first occurrence and the original order. The shell equivalent sort -u sorts as a side effect.
Pitfalls
Case conversion uses the default locale rules. Turkish dotted and dotless i (İ ı) and German ß do not round-trip between upper and lower case. camelCase and snake_case split words at case changes, so parseHTTPResponse becomes parse_http_response.