skills/url-to-markdown/SKILL.md
Convert a public webpage URL into Markdown and save it as a reusable `.md` file with the bundled script. Prefer `https://r.jina.ai/<url>` first, and only fallback to `https://markdown.new/` if `r.jina.ai` is unavailable. Use this whenever the user wants to turn a public webpage, article, documentation page, blog post, release note, or reference URL into Markdown for reading, archiving, summarizing, extraction, RAG prep, or downstream agent reuse, even if they do not explicitly mention markdown or saving a file.
npx skillsauth add hexbee/hello-skills url-to-markdownInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to fetch a public URL, convert it to Markdown, and save the result as a timestamped Markdown file for later agent use.
Conversion priority is fixed:
https://r.jina.ai/<url> (primary)https://markdown.new/ (fallback only when r.jina.ai is unavailable)This skill is execution-oriented. Prefer running the bundled script instead of manually recreating the workflow.
Use this skill when the user asks for any of the following:
.mdDo not use this skill for:
Decide these inputs before running the script:
url: required (single URL mode); must be a public URLurls: optional; multiple URLs for batch conversion (mutually exclusive with positional url)concurrency: optional; number of parallel conversions (default 3); used in batch modeoutput_dir: optional; output directory for batch conversion; creates slug-based filenamesmethod: optional; one of auto, ai, browser; default auto; used by markdown.new fallbackretain_images: optional; default false; used by markdown.new fallbacktransport: optional; one of auto, get, post; default auto; used by markdown.new fallbacktimeout: optional; default 30force_markdown_new: optional; default false; when true, skip r.jina.ai and call markdown.new directlyoutput: default ./output/ (current directory + output/); if the user explicitly provides an output path in the prompt, use that path insteadIf the user does not specify these options, keep the defaults.
Output path rule:
--output when invoking url_to_md.py.--output "output/" (relative to current working directory).From the skill directory, run:
python scripts/url_to_md.py "<url>" --output "output/"
Common variants:
python scripts/url_to_md.py "<url>" --output "output/"
python scripts/url_to_md.py "<url>" --method browser --retain-images --output "output/"
python scripts/url_to_md.py "<url>" --transport post --timeout 45 --output "output/"
python scripts/url_to_md.py "<url>" --force-markdown-new --output "output/"
python scripts/url_to_md.py "<url>" --output "<user_explicit_path>"
Batch conversion:
# Batch convert multiple URLs with parallel processing (default concurrency=3)
python scripts/url_to_md.py --urls "https://example.com" "https://example.org" "https://example.net" --output-dir "output/"
# Batch with custom concurrency
python scripts/url_to_md.py --urls "https://a.com" "https://b.com" "https://c.com" "https://d.com" "https://e.com" --concurrency 5 --output-dir "output/"
# Single URL in batch mode
python scripts/url_to_md.py --urls "https://example.com" --output-dir "output/"
Behavior notes:
r.jina.ai first.--force-markdown-new is set, the script skips r.jina.ai and uses markdown.new directly.markdown.new only when r.jina.ai is unavailable (for example timeout, network failure, 5xx, or rate limit)../output/, and the invocation should always include --output.--output is a filename, the script appends a timestamp before the extension.--output is a directory, the script creates a slug-based filename with a timestamp.Prefer producing both:
The summary should include:
r.jina.ai or markdown.newmethod, retain_images, transport, timeoutUse this structure:
Source URL: <url>
Status: success
Provider: <r.jina.ai|markdown.new>
Saved Markdown: <path>
Options: method=<value>, retain_images=<value>, transport=<value>, timeout=<value>
If defaults were used, keep Options brief.
If the script fails:
If both providers fail, report which provider failed first and which provider failed last. If the service returns rate limiting, report that directly and avoid pretending a retry succeeded.
testing
Diagnose and fix Docker image pull failures on macOS with OrbStack, especially Docker Hub EOF/TLS/manifest errors caused by system proxies, Clash/CyberClash/Mihomo/Surge-style TUN mode, fake-ip DNS such as 198.18.0.x, or unstable registry access. Use when `docker pull` or `docker manifest inspect` fails with EOF, SSL_ERROR_SYSCALL, failed to fetch anonymous token, failed to resolve reference, failed to copy, or registry-1.docker.io/auth.docker.io connectivity confusion.
development
Generate and revise job resumes from raw notes, existing resumes, career histories, or profile snippets. Use when Codex needs to create, redesign, tighten, or review a resume/CV, especially for Chinese or English A4 resumes, PDF/HTML output, first-screen hiring signal, skill ordering, pagination balance, header/contact layout, or reframing an engineering background for AI-focused roles.
tools
Design agent-usable SaaS tool systems using six reusable tool shapes (Search, Summarize, Draft, Update, Notify, Approve) plus connectors and policy guardrails. Use when turning SaaS features into reliable agent actions with clear contracts, permissions, audit trails, and approval gates.
development
Professional retrospective coach based on the GRAI model (Goal-Result-Analysis-Insight) to guide users through structured retrospectives. Transform experiences into lessons, and lessons into capabilities. Use when: (1) Systematic review needed after project/event completion, (2) Learning from failures, (3) Summarizing and replicating success experiences, (4) Creating improvement action plans.