User manual
A clear reference for every cleanup rule and workspace action.
Start with one small cleanup
- Paste text into Original, or choose Open file for a UTF-8 TXT or Markdown document.
- Choose a starting mode. Tidy prose is selected initially.
- Choose Clean text to open the read-only Cleaned view. A preview also updates as you edit or change options.
- Review the result, then choose Copy cleaned text or Download.
For example, Hello world becomes Hello world with repeated-space cleanup enabled. The word content stays the same; the gap changes.
Original, Cleaned, and Compare
Original is the editable source. Cleaned is a separate read-only result calculated from the current original and selected options. Repeated clicks do not repeatedly transform an already cleaned result.
Compare opens two read-only views. Choose Original to resume editing. View changes shows counts for each rule and a before/after excerpt. For long text, the excerpt starts near the first difference and is limited to 3,000 browser input units per view. It is not a full line-by-line diff.
Actions wait for the current preview to finish. No changes with these options means the completed result matches your source.
Choose the right starting mode
| Mode | Enabled cleanup | When to use it |
|---|---|---|
| Tidy prose | Trim line edges, collapse ordinary spaces, reduce internal blank-line runs. | Paragraphs where alignment and trailing spaces are unnecessary. |
| Repair paragraphs | Trim line edges, join consecutive non-blank lines. | Prose wrapped by a source document, not lists or code. |
| Clean a list | Trim line edges, remove empty entries, remove exact duplicates. | One item per line. Matching is case-sensitive; original order stays. |
| Keep layout | No spacing or character cleanup; line endings use LF. | Markdown, code, poetry, tables, or any text whose spacing matters. |
All modes normalize CRLF and lone CR line endings to LF in the working string. Keep layout preserves final-newline presence within entered text. Imported Markdown automatically selects Keep layout. Pasted text is not automatically classified.
Customize exactly what changes
Expand Customize cleanup to select individual rules. A changed preset becomes Custom. Paragraph joining cannot run with empty-line removal or duplicate-line removal: selecting either job turns off the conflicting options.
| Rule | Behavior |
|---|---|
| Convert non-breaking spaces | Replace U+00A0 with an ordinary space. |
| Convert tabs to spaces | Each tab becomes one space. This does not preserve column alignment. |
| Use straight quotes | Convert four common curly quotation marks to straight quotes. |
| Remove zero-width spaces | Remove U+200B. This can join words and change line-breaking intent. |
| Remove soft hyphens | Remove U+00AD discretionary hyphenation marks. |
| Remove BOM characters | Remove U+FEFF from entered text. |
| Trim line edges | Remove ordinary spaces and tabs at the edges of each line. |
| Collapse repeated spaces | Turn runs of ordinary spaces into a single space. |
| Join wrapped lines | Join non-blank lines within paragraphs. This can flatten lists or code. |
| Reduce excess blank lines | Keep one blank line between paragraphs. Outer blank lines stay. |
| Remove empty lines | Remove lines containing only ordinary spaces or tabs. |
| Remove duplicate lines | Exact, case-sensitive matching. Keep the first occurrence. |
Rules run in a fixed order: normalize line endings; selected character mappings/removals; trim line edges; collapse ordinary spaces; join paragraphs; reduce or remove blank lines; remove duplicate lines. Counts describe each rule's action at that stage. Adding counts together does not give a count of unique characters changed.
“Blank” in these line rules means empty or containing only ordinary ASCII spaces and tabs. A line containing a non-breaking space is not blank unless you also choose to convert that character. Outer blank-line runs remain with Reduce excess blank lines; Remove empty lines deletes them.
No launch rule changes letter case, removes accents, sorts entries, performs Unicode normalization, or guesses missing words. Curly-quote conversion maps U+2018 and U+2019 to an apostrophe, and U+201C and U+201D to a straight double quote.
Inspect before removing
Inspect characters reports selected spaces, joiners, variation selectors, emoji components, and direction controls. The table shows a count and the first context for each code point. It does not report every possible non-printing Unicode character and is not a security sanitizer.
U+200B removal can join words. Soft-hyphen removal discards discretionary hyphenation. Both are off initially. Joiners, non-joiners, variation selectors, emoji modifiers, tag components, and bidirectional controls remain unchanged by the launch presets. Read the invisible-character guide.
Open files and understand the limits
Open one .txt or .md file encoded as UTF-8, up to 1 MiB (1,048,576 bytes). Invalid UTF-8 is rejected without replacing your current source. A UTF-8 file signature at the start is removed during opening and reported in the import notice.
Source is limited to 500,000 UTF-16 input units; a visible symbol can use several units. Files must fit both the byte limit and decoded-text limit. The defensive output limit is 1,000,000 units. Over-limit text is rejected rather than silently truncated.
The original decoded text is retained until you edit it, but browsers may normalize newlines during paste and textarea editing. Downloads use UTF-8 and LF newlines. This app does not promise a byte-for-byte round trip of file encoding or original line endings.
PDF, Word, HTML, and other formats are not opened. If you copy text out of a PDF yourself, Repair paragraphs can join wrapped prose, but it cannot correct OCR or reconstruct document structure.
Copy, download, and reuse options
Copy cleaned text uses your browser's clipboard after you click. If access fails, the result is selected for manual copying. On touch devices, use your device's selection/copy menu.
Download defaults to TXT. Download options lets you choose Markdown or a JSON cleanup report and edit the filename. TXT and Markdown contain only the cleaned text: no added heading or code fence. Selecting Markdown does not restore formatting removed by cleanup.
A JSON report includes result, version, preset, options, and rule counts. Original text is excluded unless you check Include original text. Save options creates a separate JSON file containing settings only. Open options accepts this app's versioned settings format, not an arbitrary cleanup report.
Undo and keep your work available
Undo reverses the last six workspace actions, such as Clear, replacing the source, changing cleanup options, or Use cleaned as original. It stays in page memory and does not survive a new page session. Native typing undo remains the editor's own behavior.
Use cleaned as original deliberately starts another cleanup from the result. File/example replacement asks before replacing existing text. Invalid files leave the workspace intact.
Contextual help opens another tab. Internal navigation with entered text offers to keep this workspace open. Copy or download before closing the tab or leaving the website: the app does not automatically save your work. Browser back/forward restoration is not a reliable app save feature.
Keyboard, screen readers, and mobile
Use Tab to move among controls and Enter or Space to activate a focused button. In the Original/Cleaned tab list, Left/Right arrows switch views; Home selects Original and End selects Cleaned. Escape dismisses dialogs and the open mobile navigation. Standard copy and editor shortcuts come from your browser.
On mobile, one text view is shown at a time. Compare stacks its two views. Tables scroll inside their own containers. Text direction can be Auto, Left to right, or Right to left; that changes presentation, not the text.
Light, Dark, and System themes are available. Your appearance choice is shared across Mycelgrid pages and apps on this site. Change it here or with Appearance in the global footer. Each app keeps its own light and dark colors, and the choice is remembered across pages and reloads in this browser. If browser storage is unavailable, the choice lasts only on the current page. Text and cleanup options are not automatically saved. Completion messages announce a short summary rather than reading your entire text aloud.
If something does not look right
- A list became one paragraph: choose Clean a list or Keep layout instead of Repair paragraphs.
- Indentation disappeared: choose Keep layout or turn off Trim line edges and Collapse repeated spaces.
- A Markdown hard break disappeared: return to Original and choose Keep layout; two trailing spaces can matter.
- A strange gap remains: inspect characters. Non-breaking spaces are separate from ordinary spaces.
- Copy did not work: use the selected result and your browser/device copy action, or download TXT.
- An options file is rejected: use Save options in this app version. A report or different schema is not an options file.
- The preview is not current: wait for completion; reduce over-limit input if the status reports a limit error.
Need help with a reproducible problem? Send a deidentified issue report.