Chrome extension that converts webpages to clean Markdown in one click. MD, JSON, or Claude XML. Token-aware. Built for LLM workflows.
Install in 3 steps
Get the ZIP from GitHub releases and unzip it
Open chrome://extensions/ → Developer mode → Load unpacked
Visit any page → click castmd → choose output → paste into your model
→ chrome://extensions/ → Enable Developer mode → Load unpacked
From a single article to your entire research session — castmd handles it.
Bold, italic, links, and inline code survive the conversion. Markdown that reads like the original page.
Exact token estimates after every conversion. Know before you paste whether the content fits your context window.
Instant fit check against gpt-4, gpt-4o, Claude, and Gemini. Green chips for fits, greyed-out for over limit.
Merge every open tab into one document, or save each tab as its own file. Capture an entire research session in one click.
ARIA-role content detection skips nav, sidebars, and footers automatically. Full GitHub README support included.
Review and tweak converted output before copying or saving. Edit inline, then re-copy or re-save in one click.
Pick the output format that your model or workflow expects.
# Getting Started with castmd **castmd** converts any webpage to clean Markdown for LLM workflows. ## Features - Token counting - Model fit display - All-tabs export
{ "title": "Getting Started", "url": "github.com/...", "markdown": "# Getting...", "tokens": 2418 }
<document> <source>github.com/...</source> <document_content> # Getting Started **castmd** converts any webpage... </document_content> </document>
From any webpage to your model in four clicks.
Load the extension in Chrome developer mode — no Chrome Web Store required.
Navigate to any page — docs, articles, GitHub READMEs, research papers.
Click the popup, choose MD, JSON, or XML, then copy or save.
Drop it into your model. Token count tells you exactly what fits.
castmd uses semantic HTML detection — main, article, [role="main"], and content-density analysis as a fallback. It works on most content sites, documentation, and GitHub READMEs. Dynamic SPAs may need a moment to fully load before casting.
The XML mode wraps content in Anthropic's <document> format — the same structure used in Claude's multi-document prompting API. Paste it directly into a Claude conversation or system prompt for structured context injection.
No. castmd runs entirely in your browser. No server, no analytics, no tracking. Conversion happens in the content script injected into the active tab. Nothing leaves your machine.
castmd injects a content script into each open tab, converts the page content to Markdown, then concatenates all pages into a single document separated by horizontal rules and page titles. The token count reflects the full combined document.
Click Save all tabs as .md in the popup. castmd downloads each tab as its own file using the URL slug as the filename. Collisions are auto-deduped with -2, -3 suffixes. Use the MD/JSON/XML toggle to choose the export format.
Yes — v1.1.0 added [itemprop="articleBody"] (schema.org) detection plus a paragraph-density fallback that handles SPA-rendered editorial sites. If a site fails to extract correctly, open an issue on GitHub with the URL.
castmd estimates tokens as ceil(characters / 4) — a good approximation for English-language LLM tokenizers. It then compares against known context limits: gpt-4 (8k), gpt-4o (128k), Claude (200k), Gemini (1M).
Ctrl+Shift+M on Windows/Linux, Cmd+Shift+M on Mac. You can also right-click any page and choose "Copy page as Markdown" from the context menu.