Copy web text as clean Markdown or plain text.
No more messy pastes β just right-click and copy.
Highlight any text on any web page β articles, docs, code snippets, anything.
Right-click β Copy as Clean Text or Copy as Markdown. Or use Ctrl+Shift+C.
No smart quotes, no extra spaces, no hidden characters. Clean Markdown or plain text β ready to use.
"Curly quotes" and 'fancy apostrophes' become straight ASCII β no more paste-formatting headaches in code editors.
Em-dashes (β), en-dashes (β), and non-breaking spaces are normalised so your text looks right everywhere.
Invisible Unicode characters that break searches and form validations are silently removed.
Headings, bold, italic, links, images, code blocks, lists β and tables β from the page are converted to proper Markdown syntax.
Copied text lands directly on your clipboard β paste it anywhere with Ctrl/Cmd+V, no extra steps.
Everything happens locally in your browser. No servers, no tracking, no accounts. Your selection never leaves your machine.
Every developer, writer, and researcher knows the problem: you copy text from a web page, paste it somewhere, and it comes out wrong. Smart quotes break your code. Extra spaces mess up your formatting. Invisible characters corrupt your data.
Clean Copy fixes this at the source β before the text hits your clipboard. One right-click and you have clean, consistent text ready to paste.
And if you need Markdown, it converts headings, links, code blocks, and lists from the page's HTML β so you don't have to reformat manually.
Free tier covers everything most people need. Pro adds features for power users.
Clean Copy is a Chrome extension β Manifest V3, works in Chrome, Edge, Brave, and any Chromium-based browser.
chrome://extensions and enable Developer mode (top right).about:debugging#/runtime/this-firefox, click "Load Temporary Add-onβ¦", and pick manifest.json. (Temporary add-ons are removed when Firefox closes.)brew tap mahope/clean-copy && brew install clean-copy β or with npm: npm install -g github:mahope/clean-copy-cliclean-copy page.html > clean.md, or fetch a readable article with clean-copy --url https://example.com/post. Prefer a browser? Use the free URL to Markdown converter instead. Pipe from the clipboard: pbpaste | clean-copy | pbcopy.--url. Details: github.com/mahope/clean-copy-climahope/clean-copy-obsidian. Manual alternative: grab main.js, manifest.json and styles.css from the latest release (or download the zip bundle) and put them in <vault>/.obsidian/plugins/clean-copy-obsidian/.uses: mahope/clean-copy-cli@v1 with url: 'https://...' β the action fetches the page, extracts the main content, and returns clean Markdown.file: 'path/to/file.html' to convert a repo-local HTML file. Html input also accepts raw HTML strings directly.output_file: 'path/to/result.md' to save the result for later workflow steps. View on GitHub βCtrl+Shift+X), or download the .vsix from GitHub releases and choose Install from VSIX...Ctrl+Shift+V (or Cmd+Shift+V on Mac) to paste HTML as clean Markdown directly at your cursor. Also supports Paste as Clean Text and Convert Selection to Markdown.npm install -g clean-copy-cli β or npx clean-copy-cli to run without installing. The package includes the same zero-dependency converter as the browser extension.echo '<h1>Hello</h1>' | clean-copy or pipe from clipboard: pbpaste | clean-copy | pbcopy. Supports --url, --text, --copy and --out options.clean-copy-cli, MIT license, zero runtime dependencies. View on npm βSource code is MIT-licensed on GitHub. Free forever β no account, nothing leaves your browser.
Link noise cleanup: image-only wrapper links and #fragment-only anchors no longer produce dead Markdown like [](/link) or [View image](#img-1). Zero-width no-break spaces (U+FEFF) are stripped everywhere. Plus everything from v1.5.0βv1.5.1: paste-and-clean in the popup and invisible-character stripping.
Table alignment is now preserved: text-align styles and align attributes on cells become Markdown column separators (:--- ,:---:,---:). Fenced code blocks carry language tags ( β ```javascript). v1.3.10 fixed entity-encoded code blocks and URL container pairing.
Release-integrity fix: the extension builds now ship every converter improvement from v1.3.4βv1.3.5 (ordered-list start, details/summary, svg/math, select options, input values, iframe/object fallback). A new automated parity test guarantees the extension's converter can never silently diverge from the shared core again.
Form controls now convert cleanly: select options land on separate lines (optgroup labels kept), input values are preserved, and iframe/object fallback text becomes its own block instead of gluing onto the next paragraph. Builds on v1.3.4's fixes for <ol start>, details/summary and svg/math.
Ordered lists respect start, details/summary sections keep their heading, and svg/math markup is stripped so it can't leak into your paste.
Tables convert to proper Markdown tables, common entity decoding (& β &), paste-and-clean improvements in the popup.
Aug 2026The same engine now ships as a Firefox extension, a zero-dependency CLI (brew install mahope/clean-copy/clean-copy), an Obsidian plugin, a GitHub Action, a VS Code extension, and on npm β see all install options above.
Built on the latest Chrome extension platform. Uses service worker, offscreen clipboard API, and minimal permissions.
MV3Handles context menus and keyboard shortcuts without a persistent background page. Zero memory when not in use.
Service WorkerUses the offscreen document API to write to the clipboard β compliant with Chrome's MV3 clipboard rules.
Offscreen APIYes, the core extension is completely free. A Pro tier with additional features is planned β priced at $19/year when launched.
Yes. Clean Copy works on any page you can select text on β articles, documentation, code blogs, forums, social media, email. Everything happens in your browser.
activeTab (access the current page's selection when you invoke Clean Copy), clipboardWrite (copy to clipboard), scripting + offscreen (internal plumbing), contextMenus (right-click menu), and storage (save your mode preference). Crucially: no host permissions β Clean Copy never gets standing access to read any website. No data collection, no network access to external servers.
No. Clean Copy processes everything locally in your browser. The text you select never leaves your machine. No analytics, no tracking, no servers.
Yes. Press Ctrl+Shift+C (Windows/Linux) or Cmd+Shift+C (Mac) to copy selected text as Markdown. The shortcut is configurable in Chrome's extension shortcut settings.
Yes. Any Chromium-based browser that supports Chrome extensions can install Clean Copy from the Chrome Web Store.