.MD this page: turning a browser tab into LLM-ready Markdown
Convert any web page to clean, readable Markdown with just one click.
At a glance
- What is it?
- .MD this page is a browser extension that extracts the readable content of the current tab and hands it back as Markdown, either straight to the clipboard or through a preview tab with a live editor. It is built on the Defuddle extraction library, and it works locally without sending page content anywhere.
- Who is it for?
- This extension is a good fit if your working day involves moving documentation, articles and reference pages into a chat window, a note or a prompt, and you want the result as structured Markdown rather than a wall of raw HTML. It is a poor fit for batch processing, since there is no documented command line interface or API, and for Safari users, where the build is not published.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 20 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem it solves is context window, not formatting
The project states its aim plainly: turn any webpage into clean, LLM-ready Markdown in one click, stripping clutter while keeping structure, then copy or download instantly.
The reason this matters is stated in the same place. Modern models perform better when content arrives as clean, structured Markdown rather than raw HTML, and HTML pages carry navigation bars, scripts, ads and deeply nested DOM structures that eat context without adding meaning. The extension's job is to remove that noise before the content reaches a model.
The stated benefits follow from that: less noise, better structure understanding, token efficiency, improved reasoning quality and reliable parsing. Every one of them is a claim about machine consumption rather than about human reading. That framing is worth keeping in mind when evaluating it, because a page that reads awkwardly in Markdown may still be perfectly serviceable as input to a prompt, and the extension optimises for the second case.
Who it is for is therefore people moving reference pages into a model. Researchers, engineers assembling context, and anyone who has grown tired of pasting a page and having the model spend half its attention on a cookie banner.
Defuddle does the extraction, and it runs only when you ask
The extraction is not written from scratch. The project credits the Defuddle library, and the dependency list in the package manifest pins defuddle at a caret range on version 0.19.4, alongside dompurify for sanitising the HTML that comes back.
What the project documentation says about that step is that Defuddle isolates the main content and drops ads, navbars and other clutter, that it works on client-side rendered apps such as React, Angular and Vue applications, and that it falls back to the whole visible page when a site is not article-shaped. That last point is the honest limit of any readability extractor, and it is stated rather than hidden.
The privacy design is the part that distinguishes this from an always-on reader. The documentation says there is no content script running on every website, and that the extractor is injected into the current tab only after you click the toolbar icon, use the context menu or press the shortcut. Everything happens locally and no page content is sent anywhere. The permission table matches that story: activeTab for temporary access to the tab you invoked it on with no broad host permissions, scripting to inject the extractor on demand, contextMenus for the right-click entries, storage for settings and the conversion handed to the preview tab, and clipboardWrite for the quick action copy.
The screenshot and a file:// caveat are the two practical limits. Browser extensions cannot read the browser's own internal pages, so chrome:// URLs, about: pages, the extension stores and the built-in PDF viewer are all out of reach, and local files need the Allow access to file URLs option enabled for the extension.
The preview tab is the editing surface, the toolbar is the shortcut
There are two interaction paths, and the documentation separates them clearly.
The fast path is a single click. Click the toolbar icon, right-click and pick a quick action, or press Alt+M. The quick actions, available from the right-click menu on the page or on the toolbar icon, are Copy Markdown, Copy as Prompt and Download .MD, and they run instantly without opening the preview tab. There is also an option to enable a one-click action so a left-click on the toolbar icon immediately runs whichever quick action you chose.
The slower path is the preview tab, opened from the context menu as Open Preview Tab. It is a clean editor with a live preview that renders math, and it offers split, Markdown-only and preview-only layouts, a light and dark theme, and token, word and character counts. It also has a Re-extract button, which is the feature to reach for on pages that load more content after the initial extraction, such as an infinite scroll article or a tab that fetches its body later.
Output is configurable in both paths. You can toggle images, links, page info such as title, author and date, the source URL, and a page map, which the documentation describes as a tree outline of the page's headings. Export options include copy to clipboard, download as a .md file, and copy as prompt, which wraps the output in a markdown code fence ready for a chat box. The keyboard shortcuts inside the preview are Ctrl or Command plus Shift+C for copy and Ctrl or Command plus S for download.
Settings live on an options page where you pick the default toggles, the one-click action, auto-copy and the theme, and the documentation says settings sync across your signed-in browsers.
Building the extension from source needs Plasmo and pnpm
There is no install command for end users, because the extension is distributed through browser stores. The documentation lists Chrome, Edge, Brave, Arc, Opera and Vivaldi on the Chrome Web Store, Firefox, Zen and other Gecko browsers on Firefox Add-ons, and it also points at the zip files in the GitHub Releases section. Safari is marked as a build-it-yourself situation, and the repository contains a target for it.
If you want to build it yourself, the project is a Plasmo extension written in React and TypeScript, managed with pnpm, and the package manifest gives you the exact scripts. The extractor is bundled as a separate build step, so every command starts by building it:
pnpm build:extractor && plasmo buildFor an iterative development loop, the dev script does the same extractor build and then starts the Plasmo dev server:
pnpm build:extractor && plasmo devPer browser targets exist for each store, and the zip script produces the packaged archive. The Chrome target, the Firefox target with source maps, and the Edge target are each a single command:
pnpm build:extractor && plasmo build --target=chrome-mv3 && node scripts/zip.mjs chrome-mv3-prod
pnpm build:extractor && plasmo build --target=firefox-mv3 --source-maps && node scripts/zip.mjs firefox-mv3-prod --with-maps
pnpm build:extractor && plasmo build --target=edge-mv3 && node scripts/zip.mjs edge-mv3-prodThe Safari build has no packaging step in the manifest, which matches the documentation describing Safari as something you build yourself:
pnpm build:extractor && plasmo build --target=safari-mv3There is also an aggregate target that builds the three store flavours in sequence, and a typecheck script that runs the TypeScript compiler without emitting output.
Where it falls short: no batch mode, no Safari build, and page-shaped limits
Three limitations are worth weighing before you make this part of a workflow.
First, scope. The extension is a browser action. The documentation does not describe a command line interface, an HTTP API or a batch mode, so turning four hundred URLs into Markdown files means four hundred browser interactions. If your need is a scripted pipeline, this is the wrong shape of tool, and the closest thing to a reuse path is the Defuddle library itself, which you can call directly from your own code and which already appears in the dependency list at a specific version.
Second, Safari. The browser support table marks Safari as build it yourself, and the manifest has a target that produces the extension but no packaging script for it. That is a real gap for anyone on macOS who wants a store-installed extension, and it is also a signal that macOS users of Chrome are the well served case, not Safari users.
Third, extraction quality, which is inherited rather than solved. Client-side rendered applications are claimed to work, but the fallback for a site that is not article-shaped is the whole visible page, and the Re-extract button exists precisely because some pages are not finished when you first click. A dashboard, an infinite feed or a documentation site with heavy navigation may still yield a document that needs editing in the preview tab, and the editor is where that work lands.
The extension also does not convert to other formats. Copy to clipboard, download as a .md file and copy as prompt are the three export paths, so if your destination is HTML, PDF or a specific notes application, something else has to do that step.
MIT licence, two releases, and a version 2 that restructured the build
The licence is MIT, and the repository carries a LICENSE file alongside a CHANGELOG. That is about as permissive as it gets, so vendoring the extractor logic into an internal tool, or shipping a modified build to your own organisation, carries no obligation beyond keeping the notice.
The release history is short. Version 1.0.0 came out on 2026-04-17 and version 2.0.0 on 2026-10-03, and the last push to the repository was on 2026-10-03 as well. The project is not archived. A gap of about six months between the two tags, with the second landing as a major version, tells you the 2.0.0 release was not a routine bump, and the current package version is 2.0.0.
The manifest explains what the project is made of and what it costs to keep up. The runtime dependencies include plasmo at a pinned 0.90.3, React and React DOM at 18.2.0, defuddle, dompurify, marked and marked-katex-extension for rendering, katex for the math, lucide-react for icons, Ark UI for component primitives, clsx and tailwind-merge for class handling, and two fontsource variable fonts. A browser extension that pulls in a rendering stack and a maths renderer is not a tiny package, and it is worth remembering that the extraction library and the preview renderer are separate pieces of work that can break independently of this project.
For anyone evaluating updates, the practical watch points are the Defuddle version, since that is what determines extraction quality, and the Plasmo version, since the manifest pins it exactly and a build environment that resolves differently will not match the published extension.
Editorial conclusion
This extension is a good fit if your working day involves moving documentation, articles and reference pages into a chat window, a note or a prompt, and you want the result as structured Markdown rather than a wall of raw HTML. It is a poor fit for batch processing, since there is no documented command line interface or API, and for Safari users, where the build is not published. Before adopting it, check the pages you care about against the Defuddle extraction, because the documentation admits the extractor falls back to the whole visible page on sites that are not article-shaped, and confirm that the content you intend to paste is fine under a tool that reads whatever you point it at.
Frequently asked questions
What does the .MD this page extension do?
It converts the current browser page into clean Markdown for pasting into an LLM or saving as a file. It offers a quick copy from the toolbar or context menu, and a preview tab with an editor and live preview where you can refine the result before exporting.
Is .MD this page available for Firefox and Safari?
Firefox, Zen and other Gecko browsers use the Firefox Add-ons build, and Chrome, Edge, Brave, Arc, Opera and Vivaldi use the Chrome Web Store build. Safari is listed as a build it yourself case, so there is no published Safari version.
Does .MD this page send my page content to a server?
No. The documentation states that everything happens locally and no page content is sent anywhere, and that the extractor is injected into the tab only after you click, use the context menu or press the shortcut.
How do I convert math and code in .MD this page?
Equations written in MathML, MathJax, KaTeX or on Wikipedia become LaTeX in either inline or display form, and code blocks keep their fences. The preview tab renders the maths, and the export can also wrap everything in a markdown code fence for pasting into a chat.
How do I build .MD this page from source?
The project is a Plasmo extension in React and TypeScript using pnpm. Run pnpm build:extractor and then plasmo build, or use the per browser targets for chrome-mv3, firefox-mv3, edge-mv3 and safari-mv3, the chrome, firefox and edge store targets are each followed by a zip script for packaging.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ademking-md-this-page)Was this useful?