Paste your text
Type or open a UTF-8 file. A stays separate from the result; add B to compare lists.
SMALL EDITS. LESS TIME LOST.
Check syntax and make JSON readable without rounding numbers or reordering keys.
Unique results in first-occurrence order. Retained text is not rewritten. A final newline does not create an empty item.
Drop a UTF-8 text file here, or use Open file.Drop the file in this editor
Plain text · UTF-8 · up to 100,000 UTF-16 units
Drop a UTF-8 text file here, or use Open file.Drop the file in this editor
One item per line. A stays in the original field.
Review the result before using it.
Use it alone or add it to a recipe.
Capitalizes after . ! ? and at line starts. Other letters become lowercase: proper names and acronyms are not detected. This is not a grammar checker.
Add the operation with its current settings. Up to 12 steps; the original stays unchanged.
Choose a recipe and review its steps before loading it.
Trim spaces, lowercase, remove empty and duplicate lines, sort and number.
A recipe may remove lines or change case and order. Review the preview; your original text stays separate.
No steps yet: add a transformation.
The file excludes lists A/B but includes parameters: search words, replacements, prefixes and suffixes. Review before sharing. Retained only if you enable the optional session.
Counts words or groups of 2–3 within sentence and line boundaries. Uses the processing language and NFC normalization; no stop-word or accent removal. Percentages use all groups before the minimum filter. 50 rows per page; full TSV within the output limit. TSV columns remain term/count/percent.
| Word / group | Occurrences | Percentage |
|---|
Compares A with the preview, not A/B sets. Highlights mechanical differences, not meaning. Sorting may appear as deletions and additions.
Waiting for a valid result…
Shortened view: up to 24,000 UTF-16 units and 300 blocks. The downloadable result is complete.
Inspects A: rows and columns start at 1; columns count code points. Not a complete Unicode security or confusable-character scanner.
These options preserve ZWJ, ZWNJ and bidirectional controls. Invisible characters can be meaningful: inspect before changing them.
| Code | Unicode name | Line:column | Select in A |
|---|
Showing the first 100 occurrences. Counts cover all of A.
Off by default. Sessions contain A/B, options and recipe, not undo history. Browsers may restore tabs: this is not a vault or secure deletion. Do not share sensitive content.
Save only site pages and assets on this device. The offline cache contains no texts, personal recipes or results. Sessions remain a separate option.
You can also use your browser menu: Install app or Add to Home Screen, if available.
Make a JSON response readable while preserving large numeric IDs and reporting duplicate keys.
Formatting preserves the original representation of every number and string, including numbers beyond JavaScript numeric precision. Only whitespace outside strings changes.
Duplicate keys are reported and preserved. This checks syntax, not a JSON schema or the meaning of the data. Maximum depth is 128 levels; expanded output must fit the output limit.
{"id":9007199254740993,"active":true}{
"id": 9007199254740993,
"active": true
}No sign-up. No detours.
Type or open a UTF-8 file. A stays separate from the result; add B to compare lists.
Apply one transformation or build a recipe with visible, reorderable and optional steps.
Review the preview, copy or download the text. Recipes export separately without lists A/B.
A/B text, results and parameters are processed locally in the page and Worker, with no code sending them to external services. Only after explicit opt-in, text and settings are copied to sessionStorage for this origin and tab, including reloads. You can remove this copy. Browser restoration may retain it: secure deletion is not guaranteed. Session JSON files include text and must be protected locally.
The file excludes lists A/B but includes parameters: search words, replacements, prefixes and suffixes. Review before sharing. Retained only if you enable the optional session.
25 mechanical operations for plain text. They do not correct grammar, proper names or acronyms. Naming styles retain accents and do not guarantee valid identifiers in every language.
Intl.Segmenter counts visual graphemes when available; the limit uses UTF-16 units instead. Empty text counts as zero lines. Results may vary with browser Unicode data.