MCPInstall

web-to-markdown

Convert a web URL into cleaned Markdown with deterministic routing. Use when Codex needs to read article-like content from links and should apply source-aware fetch strategies: default to r.jina.ai for general pages (including X/Twitter), use defuddle.md for YouTube links, and use browser-impersonated extraction for WeChat/Zhihu/Feishu pages with Mozilla Readability cleanup.

Installs
249
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/rookie-ricardo/erduo-skills --skill web-to-markdown
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads web-to-markdown automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Web To Markdown

Convert URLs into usable Markdown by applying domain-aware fetching routes, then return the cleaned content directly.

Quick Workflow

  1. Normalize and validate the input URL.
  2. Select route:
  • r.jina.ai: general web + X/Twitter.
  • defuddle.md: YouTube transcript/content extraction.
  • special-browser-fetch: WeChat/Zhihu/Feishu.
  1. Return markdown text (or JSON metadata if needed).

For generic URLs (non-YouTube, non-WeChat/Zhihu/Feishu), use this fallback chain:

  • try r.jina.ai first,
  • if it fails, fallback to direct HTTP fetch + Readability,
  • if direct fetch still fails or returns shell-like content, fallback to browser extraction.

Commands

Run from this skill directory (skills/web-to-markdown):

npm install
node scripts/url_to_markdown.mjs <url>

Return metadata with markdown:

node scripts/url_to_markdown.mjs <url> --json

Force special-site browser extraction:

node scripts/fetch_special_sites.mjs <url> --json

Routing Policy

  • Default route: https://r.jina.ai/<url>.
  • YouTube (youtube.com, youtu.be): https://defuddle.md/<url>.
  • X/Twitter (x.com, twitter.com): https://r.jina.ai/<url>.
  • WeChat/Zhihu/Feishu: run scripts/fetch_special_sites.mjs.
  • If input is already proxy-formatted (https://defuddle.md/https://... or https://r.jina.ai/https://...), normalize back to the original URL and re-apply routing.

Special-Site Extraction Behavior

Use a two-stage strategy for WeChat/Zhihu/Feishu:

  1. Try cuimp HTTP/TLS impersonation first, then clean HTML with Mozilla Readability.
  2. If stage 1 fails or returns blocked/shell content, fallback to puppeteer-extra browser impersonation.
  • HTTP stage impersonates modern Chrome TLS/HTTP profile via cuimp.
  • Browser stage impersonates a modern Chrome user agent and standard sec-ch-ua headers.
  • Remove known login modals and backdrop overlays (best effort).
  • Scroll the page to trigger lazy-loaded article blocks.
  • Parse cleaned document with Mozilla Readability.
  • Convert extracted HTML body to Markdown via Turndown.
  • Resolve browser executable from CHROME_PATH first, then system Chrome/Chromium/Edge paths.

If special-site extraction fails due to anti-bot checks, account-only pages, or network limits, report failure clearly and ask for fallback input (for example raw page text).

Output Contract

For normal usage, output markdown only.

When --json is used, return:

  • source: backend source (r.jina.ai, defuddle, cuimp, browser-readability).
  • strategy: selected route (r-jina, defuddle, special-http-fetch, special-browser-fetch-fallback).
  • requestedUrl: original input.
  • resolvedUrl: normalized/final URL.
  • markdown: extracted markdown body.

Resources

  • references/routing-and-notes.md: domain routing rules and operational caveats.
  • scripts/url_to_markdown.mjs: primary entrypoint.
  • scripts/fetch_special_sites_http.mjs: WeChat/Zhihu/Feishu HTTP impersonation fetcher (cuimp JS).
  • scripts/fetch_special_sites.mjs: two-stage extractor (HTTP-first, browser-fallback).

FAQ

What does the web-to-markdown skill do?

Convert a web URL into cleaned Markdown with deterministic routing. Use when Codex needs to read article-like content from links and should apply source-aware fetch strategies: default to r.jina.ai for general pages (including X/Twitter), use defuddle.md for YouTube links, and use browser-impersonated extraction for WeChat/Zhihu/Feishu pages with Mozilla Readability cleanup.

How do I install web-to-markdown?

Run npx skills add https://github.com/rookie-ricardo/erduo-skills --skill web-to-markdown in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/web-to-markdown/ (personal) or .claude/skills/web-to-markdown/ (project).

Which AI agents can use web-to-markdown?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is web-to-markdown safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains web-to-markdown?

It is published by rookie-ricardo in rookie-ricardo/erduo-skills. It has 249 recorded installs.

More from rookie-ricardo/erduo-skills

View all →

gemini-watermark-remover

rookie-ricardo/erduo-skills

Remove the visible Gemini AI watermark from images using reverse alpha blending. Use when asked to strip Gemini watermarks, batch-process Gemini images, or build/modify a CLI script that removes the bottom-right Gemini watermark without HTML or server-side components.

AI & Agents1.7K installs

ak-rss-digest

rookie-ricardo/erduo-skills

Curate a Chinese reading digest from a fixed bundle of RSS and Atom feeds, with a strong preference for AI agent thinking, frontier AI commentary, deep interviews, and non-boring high-signal essays. Use when Codex needs to pull the latest week's posts by default, or a specific day's posts when explicitly requested, summarize them, score each article on a 10-point scale, and output only the posts scoring above 7 in a concise Chinese daily-brief style.

AI & Agents392 installs

daily-news-report

rookie-ricardo/erduo-skills

Open the skill to read its SKILL.md instructions.

Docs & Writing334 installs

translate-polisher

rookie-ricardo/erduo-skills

Open the skill to read its SKILL.md instructions.

Docs & Writing193 installs

transcript-polisher

rookie-ricardo/erduo-skills

将语音转录文本(访谈、演讲、播客、会议)精修为可读性更高的文章段落。当用户提到"字幕精修"、"transcript polish"、"润色字幕"、"把视频字幕整理成文章"、"访谈文字整理"、处理访谈记录、转录文本优化、语音转文字整理、或者需要将大段对话/演讲文本整理成可读文章时触发。适用于单人演说或多人对谈的转录文本整理,要求保留原句原词、拒绝高度概括。即使用户只是说"帮我整理一下这段文字"并附上了明显的口语化文本,也应该触发此技能。

179 installs

Popular docs & writing skills

View category →

grill-with-docs

mattpocock/skills

A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

Docs & Writing1.2M installs

lark-markdown

open.feishu.cn

飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。

Docs & Writing778.7K installs

writing-beats

mattpocock/skills

Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.

Docs & Writing490.7K installs

writing-shape

mattpocock/skills

Writing, exploit: shape raw material into an article, paragraph by paragraph.

Docs & Writing490.2K installs

writing-fragments

mattpocock/skills

Writing, explore: mine raw fragments, no structure yet.

Docs & Writing489.6K installs

writing-for-agents

mattpocock/skills

Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.

Docs & Writing479.3K installs