К основному содержанию
скилл CX Codex

qiaomu-markdown-proxy — скилл для Claude Code: обзор и установка

Скилл преобразует веб-страницы, статьи WeChat, документы Feishu и файлы PDF в чистый Markdown перед передачей текста другим агентам.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add joeseesun/qiaomu-markdown-proxy --skill qiaomu-markdown-proxy -a claude-code
Открыть на GitHub

Что делает qiaomu-markdown-proxy

Скилл перехватывает ссылки и маршрутизирует их по типу контента через отдельные скрипты. Для статей WeChat сначала используется прокси, а при появлении капчи автоматически запускается Playwright. Документы Feishu извлекаются через API сервиса. Страницы arXiv и Hugging Face обрабатываются через парсер исходников LaTeX с сохранением формул и структуры разделов.

Файлы PDF обрабатываются локальным скриптом или внешним прокси через цепочку утилит marker-pdf и pdftotext. Результат валидируется: скрипт отсекает страницы с ошибками, экраны входа и тексты короче пяти строк. Если агент должен только прочитать документ, файл сохраняется в каталог загрузок с метаданными YAML frontmatter.

Для работы с Feishu понадобятся переменные окружения FEISHU_APP_ID и FEISHU_APP_SECRET. Запасной вариант с Playwright требует установленного браузера Chromium, который ставится командой python3 -m playwright install chromium. Без этого сложные страницы с защитой обработать не удастся.

Какие задачи решает

  • извлечь текст статьи WeChat в обход капчи
  • выгрузить содержимое документа Feishu через API
  • преобразовать научную статью arXiv из исходников LaTeX в Markdown
  • сконвертировать локальный или удалённый PDF в текстовый формат
  • очистить веб-страницу от разметки перед суммаризацией

Примеры запросов агенту

  • Прочитай статью по ссылке <ссылка> и сохрани её в Markdown
  • Спарси документ Feishu по адресу <ссылка> перед тем, как писать саммари
  • Извлеки текст и формулы из публикации arXiv по ссылке <ссылка>

Как установить qiaomu-markdown-proxy

1Через Skills CLI (Vercel)

npx skills add joeseesun/qiaomu-markdown-proxy --skill qiaomu-markdown-proxy -a claude-code

2Вручную: положить файлы

~/.claude/skills/qiaomu-markdown-proxy/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/qiaomu-markdown-proxy/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о qiaomu-markdown-proxy

Как установить qiaomu-markdown-proxy в Claude Code?

Выполните команду npx skills add joeseesun/qiaomu-markdown-proxy --skill qiaomu-markdown-proxy -a claude-code в терминале.

Что делает qiaomu-markdown-proxy?

Скилл распознаёт тип веб-ссылки и извлекает чистый текст в формате Markdown с помощью специализированных скриптов для WeChat, Feishu, arXiv и PDF.

Какие зависимости нужны для работы всех функций скилла?

Для работы с Feishu требуются переменные окружения FEISHU_APP_ID и FEISHU_APP_SECRET. Для обхода капчи WeChat нужен Chromium, который ставится вызовом python3 -m playwright install chromium.

Исходный текст

SKILL.md · MIT
---
name: qiaomu-markdown-proxy
description: "Read, fetch, extract, parse, or convert a URL or link into clean Markdown. Use FIRST whenever a user asks to read source content from a webpage, especially WeChat/微信公众号 mp.weixin.qq.com, Feishu/Lark docs, X/Twitter, PDFs, arXiv papers, or a URL that will feed a later summary, rewrite, article, podcast, or analysis. For WeChat and Feishu, prefer this specialist extractor over generic web open or generic content parsers. Exclude YouTube, pure web search, already-pasted text, and local non-PDF files."
version: 2.1.0
---

# Markdown Proxy - URL to Markdown

将任意 URL 转为干净的 Markdown。支持需要登录的页面、PDF、专有平台。

## Trigger Priority(先触发,再分流)

- 用户给出 URL 并要求“读取、抓取、提取、解析、转 Markdown”时,优先使用本 Skill。
- 用户要求“读取这篇链接后再写稿、总结、翻译、做播客或分析”时,先用本 Skill 取回原文,再把 Markdown 交给下游 Skill;不要因为最终任务是写作而跳过抓取。
- `mp.weixin.qq.com` 和飞书文档属于专用路由。不要先试普通网页打开或通用内容解析器。
- 用户已经贴出全文时不触发。YouTube 交给 `qiaomu-youtube-download`,普通搜索问题交给搜索工具。

## URL Routing (先判断再执行)

收到 URL 后,先判断类型,不同类型走不同通道:

| URL Pattern | Route To | Reason |
|-------------|----------|--------|
| `mp.weixin.qq.com` | `scripts/fetch_weixin.sh` | 先代理,验证码页自动回退 Playwright |
| `feishu.cn/docx/` `feishu.cn/wiki/` `larksuite.com/docx/` | `scripts/fetch_feishu.py` | 需飞书 API 认证 |
| `youtube.com` `youtu.be` | `qiaomu-youtube-download` skill | YouTube 有专用工具链 |
| `huggingface.co/papers/` | 提取 arXiv ID → `scripts/extract_tex.py` | HuggingFace 论文页实际是 arXiv 镜像,先找到 arXiv 链接再走 LaTeX 提取 |
| `arxiv.org/abs/` `arxiv.org/pdf/` | `scripts/extract_tex.py` | 从 LaTeX 源码提取结构化内容 (章节/图表/公式) |
| `.pdf` (URL or local path) | `scripts/extract_pdf.sh` | PDF 专用提取 |
| All other URLs | `scripts/fetch.sh` | 代理级联自动 fallback |

## Workflow

### Step 1: Route by URL Type

```
if URL contains "mp.weixin.qq.com":
    → bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_weixin.sh "URL"
    → Done

if URL contains "feishu.cn/docx/" or "feishu.cn/wiki/" or "larksuite.com/docx/":
    → python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_feishu.py "URL"
    → Done

if URL contains "huggingface.co/papers/":
    → First fetch the page (WebFetch) to find the arXiv URL
    → Then python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_tex.py "{arxiv_url}"
    → Done

if URL contains "arxiv.org/abs/" or "arxiv.org/pdf/":
    → python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_tex.py "URL"
    → Done

if URL contains "youtube.com" or "youtu.be":
    → Call qiaomu-youtube-download skill
    → Done

if URL ends with ".pdf" or is local PDF path:
    if remote URL:
        → Try: curl -sL "https://r.jina.ai/{url}"
        → If fails: download + extract_pdf.sh
    if local path:
        → bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_pdf.sh "PATH"
    → Done

else:
    → bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "URL"
    → Done
```

### Step 2: Display Content

After fetching, show to user:

```
Title:  {title}
Author: {author} (if available)
Source: {platform} (公众号 / 飞书文档 / 网页 / PDF)
URL:    {original_url}

Summary
{3-5 sentence summary}

Content
{full Markdown, truncated at 200 lines if long}
```

### Step 3: Continue or Save

- **Composite request**(“读取后写稿/总结/分析”):把提取结果直接交给下游任务,在同一轮继续;除非用户要求,不必额外保存源文件。
- **Extraction-only request**(“只读取/转 Markdown”):保存到 `~/Downloads/{title}.md`,使用 YAML frontmatter。

- Filename: use article title, remove special characters.
- Format: YAML frontmatter (title, author, date, url, source) + Markdown body.
- Tell the user the saved path.
- Skip saving if the user says “just preview” or “don't save”.

Only stop after extraction when extraction was the complete request. If the user asked for a downstream deliverable, continue to that deliverable.

## Examples

### General URL
```bash
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "https://example.com/article"
```

### X/Twitter Post
```bash
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "https://x.com/username/status/1234567890"
```

### WeChat Article
```bash
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_weixin.sh "https://mp.weixin.qq.com/s/abc123"
```

### Feishu Document
```bash
python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_feishu.py "https://xxx.feishu.cn/docx/xxxxxxxx"
```

### arXiv LaTeX Source
```bash
python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_tex.py "https://arxiv.org/abs/1706.03762"
```

### PDF (Remote)
```bash
curl -sL "https://r.jina.ai/https://example.com/paper.pdf"
```

### PDF (Local)
```bash
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_pdf.sh "/path/to/paper.pdf"
```

### With Custom Proxy
```bash
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "https://example.com" "http://127.0.0.1:7890"
```

## Notes

- r.jina.ai and defuddle.md require no API key
- `fetch.sh` handles proxy cascade with automatic fallback
- Content validation: filters error, login-wall, and WeChat verification pages; requires >5 lines
- WeChat wrapper prefers dependency-free proxies, then uses local Playwright; when Python packages are missing and `uv` is available, it runs them in an isolated environment
- Playwright fallback requires a Chromium runtime; install once with `python3 -m playwright install chromium` if absent
- Feishu script requires: `FEISHU_APP_ID` + `FEISHU_APP_SECRET` env vars
- PDF extraction tries: marker-pdf → pdftotext → pypdf
- For detailed method documentation, see `references/methods.md`

© joeseesun · MIT · joeseesun/qiaomu-markdown-proxy

Похожие скиллы

Все скиллы по теме «Браузер и парсинг» →
baoyu-danger-x-to-markdown JimLiu Конвертирует посты, треды и статьи из социальной сети X в файлы Markdown с YAML-заголовками. Пригодится для локального сохранения публикаций и медиафайлов. CX Codex +1 28 000установок baoyu-markdown-to-html JimLiu Переводит Markdown в HTML с инлайн-CSS и темами под WeChat. Пригодится, когда статью нужно отдать в мессенджер или на площадку со своим оформлением. CX Codex +1 32 200установок canghe-markdown-to-html freestylefly Конвертирует Markdown в оформленный HTML с инлайновыми стилями для WeChat. Поддерживает диаграммы PlantUML, подсветку кода и формулы. CX Codex +1 532установок safe-browser browserbase Скилл собирает локального браузер-агента, у которого есть только один инструмент — safe_browser. Все запросы вне разрешённых доменов блокируются на уровне CDP. CX Codex +1 1 700установок lightpanda-browser reason-machines Скилл учит агента работать с Lightpanda: запускать headless-браузер на Zig, поднимать CDP-сервер и цеплять к нему Playwright или Puppeteer. CX Codex +1 1 500установок lightpanda Lightpanda Headless-браузер для агентов без графического рендеринга. Заменяет Chrome при сборе данных со страниц и веб-автоматизации через MCP или CDP. CX Codex +1 1 300установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой