Writer tools
Count, clean, compare, and transform text. Every tool runs in your browser, so nothing you paste is uploaded.
Counting and statistics
Word, character, sentence, and reading statistics for any text.
- Word Counter Count words, unique words, and characters in your text as you type, with no signup, no upload, and no word limit of any kind. Unique words too, live.
- Character Counter Count characters in your text with or without spaces, plus bytes, lines, and paragraphs, for form limits, meta tags, and SMS budgets. Handy for meta tags.
- Sentence Counter Count the sentences in your text and see the average and longest sentence length, so you can spot sentences that run long before a reader does.
- Paragraph Counter Count the paragraphs in your text along with sentences, words, and the average length of each paragraph, for article and essay targets. Handy for essay drafts.
- Line Counter Count the lines in your text, including or excluding blank lines, which is what most code editors and submission forms actually limit. Handy for form limits.
- Letter Counter Count the letters in your text and see how many are uppercase, lowercase, and distinct, ignoring digits and punctuation. Handy when an assignment counts letters.
- Word Frequency Counter See how often each word appears in your text, ranked by count or alphabetically, so you can spot repetition and overused words in a draft. Finds repeated words.
- Keyword Density Checker Measure how often a keyword or phrase appears in your text and what share of the total it takes, for on-page SEO and over-optimisation checks.
- Text Statistics See every text statistic at once, from words and sentences to letters, digits, punctuation, and the average words per sentence and paragraph. Everything at once.
- Typing Speed Calculator Measure your typing speed in words and characters per minute, with a built-in timer you can start and stop as you type a passage. Words per minute is the unit.
- Writing Goal Tracker Set a word target and watch your progress toward it as you type, with the remaining words and a share of the goal completed. Gives a draft a target to hit.
Reading and speaking time
Estimate how long a text takes to read or to say out loud.
- Reading Time Calculator Calculate how long your text takes to read at slow, average, and fast speeds, so you can set expectations before publishing an article. Useful for a blog byline.
- Speaking Time Calculator Calculate how long your script takes to say out loud at your speaking pace, with extra time allowed for punctuation pauses and delivery. Useful for a video script.
Letter case
Convert text between uppercase, title, camel, snake, and other cases.
- Case Converter Convert text between lowercase, uppercase, title case, sentence case, camel, Pascal, snake, kebab, constant, and alternating case. Keeps paragraphs intact.
- Title Case Converter Convert text to Title Case with correct handling of minor words and existing acronyms, so a headline reads the way an editor would want it. Keeps acronyms intact.
- Sentence Case Converter Convert text to sentence case, capitalising the first word after each full stop while leaving acronyms and the pronoun I untouched. Usual style for web headings.
- Uppercase Converter Convert any text to uppercase, with an option that also turns accented letters such as é into their plain capital equivalent. For headings and ASCII only.
- Lowercase Converter Convert any text to lowercase, with an option that strips accents so a letter such as É becomes a plain e. Useful for tags, slugs, and case-sensitive values.
- Alternating Case Converter Alternate the letter case of your text letter by letter, or word by word, which is the format used for decorative headings and playful captions.
- camelCase Converter Convert text or a variable name to camelCase, joining words with no separator so the first letter of each word is capitalised. Used for JavaScript variables.
- PascalCase Converter Convert text or a variable name to PascalCase, joining words with no separator and capitalising the first letter of every word. Used for class and type names.
- snake_case Converter Convert text or a variable name to snake_case, joining lowercase words with underscores, which is the standard for Python and database columns.
- kebab-case Converter Convert text to kebab-case, joining lowercase words with hyphens, the format used for URL slugs, CSS class names, and file names. Used for slugs and CSS classes.
- CONSTANT_CASE Converter Convert text to CONSTANT_CASE, joining uppercase words with underscores, which is the style used for constants and environment variables. Marks fixed values.
Cleaning and whitespace
Remove extra spaces, line breaks, duplicates, and hidden characters.
- Remove Duplicate Lines Remove duplicate lines from a list and keep only the first occurrence of each one, with options for case sensitivity, sorting, and blank lines.
- Sort Lines Sort a list of lines alphabetically, by length, or numerically, with options for case sensitivity and dropping empty lines. Tidy a list or order numbers.
- Remove Extra Spaces Collapse multiple spaces and tabs into a single space and trim the ends of every line, while keeping your line breaks exactly as they are. Good after a PDF copy.
- Remove Line Breaks Join every line of your text into a single line, with a space or nothing between them, which is what form fields and metadata tags need. Good for a meta tag.
- Add Line Breaks Wrap your text to a set line length on word boundaries, keeping paragraph breaks intact so nothing is cut in half mid-word. Handy for print and email.
- Text Cleaner Strip hidden and invisible characters, normalise line endings and tabs, collapse blank lines, and trim your text in one pass. The fix after a web copy paste.
- Plain Text Formatter Strip HTML tags and formatting from a page and leave readable plain text, keeping headings, list items, and paragraph breaks where they belong.
- Text Repeater Repeat a line of text as many times as you need, joined by a character or a line break, for testing, templates, and placeholders. Handy for test strings.
- Reverse Text Reverse your text character by character, either as a whole or one line at a time, for puzzles, effects, and checking a string. Safe with emoji.
- Reverse Words Reverse the order of the words in your text or in each line, keeping every word itself intact and readable. Word order changes, spelling does not.
Find, replace, and compare
Search, replace, diff, and pull words out of a text.
- Text Diff Checker Compare two texts line by line and see exactly which lines were added, removed, or kept, so you can review a change before you commit it. Nothing is uploaded.
- Find and Replace Find a word or phrase in your text and replace every occurrence at once, with whole word, case, and regular expression options. A whole-word option is included.
- Word Finder Count how often a word appears in your text and show every occurrence with the words around it, so you can judge each use in context. Shows the context too.
- Text Extractor Pull pieces out of your text by a regular expression, or take a range of words or characters, and get the matches back one per line. Regex or word and char range.
- Longest Word Finder Find the longest words in your text with their length, which is how you spot an over-long word before a reader stumbles on it. Long words slow a reader down.
- Shortest Word Finder Find the shortest words in your text with their length, which is how you spot filler words that can often be deleted without losing meaning. Often filler words.
- Palindrome Checker Check whether a word or sentence reads the same backwards and forwards, with options to ignore case, spaces, and punctuation. Never odd or even is one.
- Anagram Checker Check whether two texts are anagrams of each other by comparing their letters, with a note on exactly which letters differ when they are not. Names the difference.
Extract from text
Pull out emails, links, hashtags, and mentions from any text.
- Extract Emails Pull every email address out of a text and get the list back one per line, validated and ready to paste into a spreadsheet. Each address is validated first.
- Extract URLs Pull every web link out of a text and get the list back one per line, with trailing punctuation trimmed off the end of each address. Trims trailing punctuation.
- Extract Hashtags Pull every hashtag out of a text and get the list back one per line, ignoring markdown headings that start with a hash. A hash plus space is a heading.
- Extract Mentions Pull every mention such as a username out of a text and get the list back one per line, with email addresses left out unless you want them. Skips email addresses.
Lists and data
Turn plain lines into lists, CSV, quotes, and numbered output.
- List Formatter Turn plain lines into a bulleted, numbered, lettered, or Roman numeral list, with a starting number and nesting for indented items. Works with indented outlines.
- Bullet List Generator Turn one item per line into a bulleted list using a dash, an asterisk, or a plus, ready to paste into any document or content field. No hand numbering needed.
- Numbered List Generator Turn one item per line into a numbered list that counts up for you, with the starting number and the dot or bracket style you prefer. Renumbers after an edit.
- Comma Separator Join a list of lines into one line separated by commas, semicolons, pipes, or spaces, with optional trimming and dropping of empty lines. For tag and keyword fields.
- Text to CSV Turn lines of text into a proper CSV file with quoting and CRLF line endings, choosing your delimiter and an optional header row. RFC 4180 line endings included.
- CSV to Text Turn CSV data back into readable text, handling quoted fields and detecting the delimiter automatically so you can read a spreadsheet as lines.
- Quote Generator Wrap each line of your text in quotation marks, curly quotes, or a block quote marker, with an optional author attribution for every line. Ready for a quote wall.
Markdown and HTML
Format Markdown and convert between Markdown and HTML.
- Markdown Formatter Tidy Markdown into a consistent style, with normalised list markers, clean spacing around headings, and no changes inside code blocks. Keeps code blocks intact.
- Markdown to HTML Convert Markdown into clean HTML with headings, lists, links, code, tables, and blockquotes, escaping any raw HTML so the result is safe to paste.
- HTML to Markdown Convert HTML into clean Markdown, keeping headings, lists, links, code, and tables readable, and escaping stray Markdown characters in the text.
Readability and writing
Readability scores, passive voice, and sentence length checks.
- Readability Checker Measure your text with seven readability formulas at once, including Flesch, Flesch-Kincaid, Gunning Fog, and SMOG, against a target audience.
- Flesch Reading Ease Calculate the Flesch Reading Ease score for your text, from 0 to 100, with the difficulty band and the sentence and syllable counts behind it.
- Flesch-Kincaid Grade Calculate the Flesch-Kincaid grade level of your text, which reports the US school year needed to read it, and compare it to your target audience.
- Passive Voice Checker Find sentences that use the passive voice, with the suspected verb and a rewritten active version when the sentence names who did the action.
- Sentence Length Checker See every sentence in your text with its length, so you can find the ones that run long and split them before a reader gives up. Long sentences are the fixable kind.
- Paragraph Length Checker See each paragraph with its word and sentence counts, and find the paragraphs that are carrying more than a reader wants at once. Finds the heavy paragraph.
Generators
Placeholder text and citations for drafts, designs, and papers.
- Lorem Ipsum Generator Generate placeholder paragraphs, sentences, or a set number of words in Lorem ipsum, Bacon, or Shakespeare style, for a layout before real content exists.
- Citation Generator Build an APA, MLA, Chicago, Harvard, or IEEE citation from the source details you enter, and see exactly which fields are still missing. Never invents a DOI.
How these tools handle your text
Every tool on this page runs as JavaScript in your own browser. Text you paste is processed on your device and is never sent to a server, so a draft, an unpublished article, or a client document stays on your machine. Nothing is stored after you close the tab.