Baoyu url to markdown
/SKILLFetch any URL and convert to markdown using Chrome CDP. Supports two modes - auto-capture on page load, or wait for user signal (for pages requiring login).
--- name: baoyu-url-to-markdown description: Fetches any URL and converts it to Markdown using Chrome CDP. Supports two modes: auto-capture upon page load, or waiting for a user signal (for pages requiring a login). Use this when a user wants to save a webpage as Markdown. --- # URL to Markdown Fetches any URL via Chrome CDP and converts HTML to clean Markdown. ## Script Directory Important: All scripts are located in the scripts/ subdirectory of this skill. Agent Execution Instructions: 1. Determine the directory path of this SKILL.md file as SKILL_DIR 2. Script path = ${SKILL_DIR}/scripts/<script-name>.ts 3. Replace all instances of ${SKILL_DIR} in this document with the actual path Script Reference: | Script | Purpose | |--------|---------| | scripts/main.ts | CLI entry point for fetching URL | ## Preferences (EXTEND.md) Use Bash to check for the existence of EXTEND.md (in order of priority): ``bash # Check project-level first test -f .baoyu-skills/baoyu-url-to-markdown/EXTEND.md && echo "project" # Then user-level (cross-platform: $HOME works on macOS/Linux/WSL) test -f "$HOME/.baoyu-skills/baoyu-url-to-markdown/EXTEND.md" && echo "user" ┌────────────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-url-to-markdown/EXTEND.md │ Project directory │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-url-to-markdown/EXTEND.md │ User home │ └────────────────────────────────────────────────────────┴───────────────────┘ ┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ Result │ Action │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Found │ Read, parse, apply settings │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Not found │ Use defaults │ └───────────┴───────────────────────────────────────────────────────────────────────────┘ **EXTEND.md Supports**: Default output directory | Default capture mode | Timeout settings ## Features - Chrome CDP for full JavaScript rendering - Two capture modes: auto or wait-for-user - Clean markdown output with metadata - Handles login-required pages via wait mode ## Usage bash # Auto mode (default) - capture when page loads npx -y bun ${SKILL_DIR}/scripts/main.ts <url> # Wait mode - wait for user signal before capture npx -y bun ${SKILL_DIR}/scripts/main.ts <url> --wait # Save to specific file npx -y bun ${SKILL_DIR}/scripts/main.ts <url> -o output.md ## Options | Option | Description | |--------|-------------| | <url> | URL to fetch | | -o <path> | Output file path (default: auto-generated) | | --wait | Wait for user signal before capturing | | --timeout <ms> | Page load timeout (default: 30000) | ## Capture Modes | Mode | Behavior | Use When | |------|----------|----------| | Auto (default) | Capture on network idle | Public pages, static content | | Wait ( --wait ) | User signals when ready | Login-required, lazy loading, paywalls | **Wait mode workflow**: 1. Run with --wait → script outputs "Press Enter when ready" 2. Ask user to confirm page is ready 3. Send newline to stdin to trigger capture ## Output Format YAML front matter with url , title , description , author , published , captured_at fields, followed by converted markdown content. ## Output Directory url-to-markdown/<domain>/<slug>.md - <slug>: From page title or URL path (kebab-case, 2-6 words) - Conflict resolution: Append timestamp <slug>- YYYYMMDD-HHMMSS.md ## Environment Variables | Variable | Description | |----------|-------------| | URLCHROMEPATH | Custom Chrome executable path | | URLDATADIR | Custom data directory | | URLCHROMEPROFILE_DIR` | Custom Chrome profile directory | Troubleshooting: