mit einem Klick
read
// Fetches any URL or PDF as clean Markdown for reading, quoting, citation, or downstream work. Handles paywalls, JS-heavy pages, X/Twitter, and Chinese platforms via proxy cascade. Not for local text files already in the repo.
// Fetches any URL or PDF as clean Markdown for reading, quoting, citation, or downstream work. Handles paywalls, JS-heavy pages, X/Twitter, and Chinese platforms via proxy cascade. Not for local text files already in the repo.
Reviews code diffs and release-ready changes after implementation, runs on-demand project-wide code-quality audits with a 4-axis scorecard, executes approved implementation plans, extracts project-specific constraints from repository context, auto-fixes safe issues, and drives approved release, publish, push, release-reaction, and issue/PR follow-through. Also triages issues and PRs when the user mentions them. Not for exploring ideas, debugging, or document prose review.
Produces distinctive, production-grade UI for components, pages, and visual interfaces, with artifact-grounded screenshot iteration for real app polish. Not for backend logic or data pipelines.
Generate visually striking PPT slides via OpenAI's gpt-image-2 -- 10 curated styles (Spatial Glass / Tech Blue / Editorial Mono / Dark Aurora / Risograph / Wabi / Swiss Grid / Hand Sketch / Y2K Chrome / Retro Vector) plus a template-clone mode that mimics any user-supplied .pptx; ships an HTML viewer and a 16:9 .pptx. Use when the user asks to make a presentation, slides, deck, pitch deck, investor PPT, magazine-style PPT, or 做一份 PPT / 生成幻灯片 / 用 gpt-image 生成 PPT / 按这个模板生成 PPT.
Runs a budget-aware Agent Health audit for Codex, Claude Code, agent instructions, verifier surfaces, and AI maintainability when agents ignore instructions, hooks/MCP fail, validation is missing, or AI-written code is hard to maintain. Flags issues by severity. Not for debugging code or reviewing PRs.
Finds root cause of errors, crashes, regressions, screenshot-reported defects, unexpected behavior, and failing tests before applying any fix. Not for code review or new features.
Runs a six-phase research workflow to turn unfamiliar domains or collected sources into publish-ready output. Not for quick lookups or single-file reads.
| name | read |
| description | Fetches any URL or PDF as clean Markdown for reading, quoting, citation, or downstream work. Handles paywalls, JS-heavy pages, X/Twitter, and Chinese platforms via proxy cascade. Not for local text files already in the repo. |
| when_to_use | any URL or PDF to fetch, 看这个链接, 读一下, 看看这个网页, 抓取网页, read this, check this URL, fetch this page |
| dispatch_intent | Any URL or PDF to fetch, read this, fetch this page |
Prefix your first line with 🥷 inline, not as its own paragraph.
Convert any URL or local PDF to clean Markdown. No analysis, no summary, no discussion of the content unless explicitly asked after the fetch.
| Input | Method |
|---|---|
feishu.cn, larksuite.com | Feishu API script |
mp.weixin.qq.com | Proxy cascade first, built-in WeChat article script only if the proxies fail |
.pdf URL or local PDF path | PDF extraction |
GitHub URLs (github.com, raw.githubusercontent.com) | Prefer raw content or gh first. Use the proxy cascade only as fallback. |
x.com, twitter.com | Proxy cascade (r.jina.ai keeps image URLs). Do not try WebFetch; it 402s. |
| Everything else | Proxy cascade |
After routing, load references/read-methods.md and run the commands for the chosen method.
scripts/fetch.sh is privacy-first. The cascade depends on whether the user opts into proxy services.
fetch.sh URL): local extractor only. The URL never leaves the machine. Best quality requires pip install --user readability-lxml html2text; without those, falls back to a stdlib HTML stripper (works but messier output).fetch.sh --use-proxy URL): local first, then defuddle.md, then r.jina.ai. Those third-party services receive the URL and may cache or log it. Reserve --use-proxy for JS-heavy pages (X/Twitter), paywalls, or anything the local extractor cannot reach.Every tier emits a structured stderr line: [fetch] tier=<name> status=<ok|fail> reason="...". Read the stderr if a fetch fails; it names the specific tier and reason.
Hard rule: do not pass authenticated, internal, or otherwise sensitive URLs to --use-proxy. Default mode is safe; proxy mode is not.
Title: {title}
Author: {author} (if available)
Source: {platform}
URL: {original url}
Content
{full Markdown, truncated at 200 lines if long}
Default: display only. Show the converted Markdown inline. Do not create a file.
Save to ~/Downloads/{title}.md with YAML frontmatter when any of these are true:
/learn (Phase 1 expects a file to move)When saving:
-1, -2, etc. Never overwrite without confirmation.When not saving:
By default only save Markdown. Download images only when the user explicitly asks: "download images", "save images", "带图", "下载图片", or similar.
When asked, after saving the Markdown:
grep -oE 'https?://[^ )"]+\.(jpg|jpeg|png|webp|gif)' {md_path} | sort -u~/Downloads/{title}-images/ and curl each URL in parallel (& + wait). Use the same proxy env vars as the fetch step.| What happened | Rule |
|---|---|
| Fetched a paywalled article and returned a login page as Markdown | Inspect the first 10 lines for paywall signals ("Subscribe", "Sign in", "Continue reading"). If found, stop and warn the user. Do not save the login page. |
| User said "read this" but meant "summarize and act on it" | Deliver the Markdown first, then ask what to do next. Do not save unless asked. |
| URL returned empty page or paywall with no content | Report the failure clearly: what was tried, what failed. Do not fabricate or guess the content. |
| Local extractor returned a few lines of menu junk | Install readability-lxml + html2text (pip install --user readability-lxml html2text) for a real article extractor. |
| Default fetch failed and the page is clearly public | Re-run with --use-proxy to send the URL through defuddle.md / r.jina.ai. Only do this for public, non-sensitive URLs. |
| Network failures | Prepend local proxy env vars if available and retry once. |
| Long content | Preview with head -n 200 first; mention truncation when reporting the save. |
| Local fallback tools returned JSON | Extract the Markdown-bearing field. Raw JSON is not a valid final output for /read. |
| All methods failed | Stop and tell the user what was tried and what failed. Suggest opening the URL in a browser or providing an alternative. Do not silently return empty or partial results. |
Activate when: "extract content", "reformat this document", or user hands over a document to restyle
Extract and tag:
Output: Clean, tagged content ready to feed into kami or other typesetting tools.