Skip to content
Marvin's Toolbox.

Text Tools

Tools to inspect, clean up, convert and generate text.

Open a CSV or TSV file and read it as a proper table. Sort by any column, filter rows with a search or per-column conditions, hide columns you do not need, and copy or download what is left.

Remove duplicate lines from a list or text, keeping the first occurrence. Optionally ignore case and whitespace, or drop blank lines too.

Replace text in two modes: plain find and replace all, or regular expressions with flag controls and capture group references like $1.

Reveal the characters you can't see in a text: zero-width spaces, non-breaking spaces, bidi marks, control characters and CRLF versus LF line endings. Inspect every occurrence and clean them out with a click.

Strip the sensitive bits out of a log or any text before sharing it: emails, IP and MAC addresses, file paths, UUIDs, timestamps, URLs, tokens and more. Pick what to redact and how it is replaced, with stars, a fixed character, a type label or a length-preserving mask.

Generate placeholder text: pick how many words, sentences or paragraphs you need, optionally starting with the classic Lorem ipsum opening, and copy the result.

Write Markdown with a live GitHub-style preview, including tables, task lists, callouts and highlighted code. Copy the result as Markdown, HTML or rich text.

Build a Markdown table in a spreadsheet-like editor and copy the aligned result. Add, move and delete rows and columns, set per-column alignment, and paste cells straight from Excel, Google Sheets or CSV. The output stays neatly padded so it reads well as plain text.

Turn any text into a clean URL slug. Transliterates accents and non-Latin scripts to ASCII, with options for the separator, letter case and a length limit. Handles many titles at once, one line per slug.

Sort the lines of a text alphabetically, naturally, by length, by numeric value or shuffled. Reverse the order with a switch, and optionally trim lines, drop blank lines and remove duplicates in the same pass.

Convert text into every case at once: title case in the APA, AP, Chicago, MLA, Bluebook, AMA and NYT styles, sentence case, upper, lower, camelCase, snake_case, kebab-case and more.

Compare two texts and see every added, removed and changed line highlighted, side by side or inline, with the changed words marked within each line. Ignore case, whitespace or blank lines, read a summary of how much changed, and export the result as a unified diff.

Turn a nested list into a folder tree drawn with ├── and └── lines. Paste a Markdown list or an existing tree, pick the line style and copy it into a README.

Split a long text into numbered posts that fit a character limit. Pick a preset for X, Threads, Mastodon or Bluesky or set your own limit, choose the numbering style, and keep words or paragraphs intact. Copy each post on its own or all at once.

Paste text and see every character laid out: its codepoint, official Unicode name, block, category, UTF-8 and UTF-16 bytes and HTML entity. Emoji and other grapheme clusters are grouped, so you see what the eye sees and what the bytes say.

Count words, characters, sentences, paragraphs, lines and more as you type, with estimated reading and speaking time.

Tools that also have to do with text

These tools have their home in another category but fit here too.

Turn speech in an audio or video file into text with Whisper. Pick a model size and a language, or translate to English, then read a timestamped transcript and download it as text, SRT or VTT subtitles.

Encode and decode Base16, Base32, Base36, Base45, Base58, Base62, Base64 and Base85. Pick the alphabet variant you need, from Crockford Base32 to Bitcoin Base58 and Ascii85, and convert in either direction.

Decode Base64 to text or encode text to Base64. Paste into the top box, read the result below, and flip the direction with one click. Handles Unicode correctly, reads URL-safe Base64, and shows binary payloads as a hex dump you can download.

Format code in JavaScript, TypeScript, JSON, JSON5, HTML, Vue, CSS, SCSS, LESS, Markdown, YAML, GraphQL, XML and SQL. Pick tabs or spaces, set the indent width, and format the input in place with one click.

Test a date format string against any date and time zone, and see what every token means. Works with strftime, Go layouts, date-fns, Moment, Java, PHP and .NET patterns, and translates a format from one language to another.

Sort your tasks by urgency and importance on a 2x2 board. Drag them between do, schedule, delegate and drop, then save the matrix as an image or a Markdown checklist.

Test glob patterns and .gitignore rules against a list of file paths and see which ones match, which are ignored and which rule decided it.

Escape text into HTML entities or decode entities back to plain text. Choose named or numeric entities, escape only the unsafe characters or everything outside ASCII, and read the result live.

Read the text out of a screenshot, photo or scan with OCR. Pick the language, watch the recognition progress, review the result with per-word confidence, and copy or download the extracted text.

Paste or drop application logs and read them as a clean, structured list. Detects logfmt, JSON lines and common plain-text formats, colors levels and timestamps, and lets you expand or collapse the fields of every entry.

Paste encoded text and it works out how it was encoded and undoes it layer by layer, from Base64 and Base85 to URL escapes, HTML entities, ROT13 and gzip.

Write Mermaid diagrams and see them render as you type. Flowcharts, sequence diagrams, class, state, ER and Gantt charts export as SVG or PNG.

Translate text to Morse code and Morse back to text, with a reference table of every letter, digit and punctuation mark. Play any result as sound with adjustable speed and tone.

Pull the text out of a PDF, page by page or all at once. Keeps the reading order, lets you pick a page range, and gives you plain text you can copy, download or send to another tool.

Paste a list and draw a random winner instantly or with a spinning wheel. Pick several at once, weight entries, remove winners between rounds and keep a history.

Test a JavaScript regular expression against your own text with every match highlighted and capture groups color coded. Toggle flags and copy all matches.

Run real SQL on your own data with SQLite. Open a CSV, JSON or .sqlite file, or paste a table, and query it with joins, aggregates and window functions. Browse the schema, export results as CSV or JSON, and download the database.

Escape or unescape a string for JSON, JavaScript, regex, shell, SQL, CSV, XML and more. Paste text, pick the target format and copy the result, in either direction.

Convert subtitles between SRT and VTT, shift their timing forward or backward, and fix frame rate drift to sync out-of-sync captions. Preview the parsed cues, catch format errors, and download the converted file.

Encode text for use in URLs or decode percent-escaped strings back to readable text. Choose component, full-URL or form encoding, unwrap double-encoded strings, and break a URL into its parts with every query parameter decoded.

Break a URL into scheme, host, path, query and fragment and edit each part. Query parameters become an editable table, and tracking parameters go with one click.

Run XPath queries against your own XML or HTML and see the matching nodes right away. Shows each match with its path and value, handles namespaces, and comes with examples for the syntax you keep forgetting.