원클릭으로
download-webpage
Download a web page by URL and save it as clean markdown with images
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Download a web page by URL and save it as clean markdown with images
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Fill missing type, title, and description frontmatter on documents using structured AI output
Audit for accessibility — keyboard navigation, ARIA labels, contrast, focus indicators
Produce a full dependency health report (SBOM, vulnerabilities, staleness, upgrades, licenses)
Audit error handling UX — error boundaries, silent failures, loading states, empty states
Audit for unnecessary re-renders — Zustand subscriptions, missing memoization, inline callbacks
Audit test coverage — inventory tests by type, find critical untested paths
| name | download-webpage |
| description | Download a web page by URL and save it as clean markdown with images |
| user-invocable | true |
Download a web page, extract the main article content, download referenced images, and save it all as a clean markdown file.
Get the URL. Ask the user for the URL to download, or receive it as part of a batch operation.
Ask where to save the file. This is required — do not skip this step. Ask the user for an output folder path. Suggest a reasonable default like articles/ in the current project, but always confirm before proceeding.
Ensure dependencies are installed (first use only):
execute_skill_script("download-webpage", "scripts/setup.sh", [skill_scripts_dir])
Where skill_scripts_dir is the absolute path to the skill's scripts/ directory.
Run the download script:
execute_skill_script("download-webpage", "scripts/download.mjs", [url, output_dir])
The script:
<output_dir>/images/Output JSON to stdout:
{
"title": "Article Title",
"url": "https://example.com/article",
"file": "/path/to/saved/article-title.md",
"wordCount": 1234,
"images": 5,
"status": "created"
}
status values:
"created" — new file saved"exists" — file already exists, nothing was written"overwritten" — existing file was replaced (when --force was used)Handle existing files. If status is "exists", you MUST present exactly these three choices as a numbered list:
--force flag: [url, output_dir, "--force"]-1 (or -2, etc.) to the filename, then re-run without --forceReport the result. Tell the user:
When processing multiple URLs (e.g., from a bookmarks file):
status fieldWhen the user is saving a page for research purposes (mentions "research", "save for later", "add to research", "collect", etc.):
Default output directory: Use research/ in the current project (e.g. <project>/research/) instead of asking for a custom directory. If no project is open, use ~/Notesage/research/.
Pass tags: If the user specified any tags (e.g., "save this for my #climate research"), pass them via the --tags flag:
execute_skill_script("download-webpage", "scripts/download.mjs", [url, output_dir, "--tags", "climate"])
Post-download organization: After a successful download, mention that the save-research skill can be used to further organize the file (add more tags, move between directories, update metadata).
Research frontmatter: The download script automatically includes research-friendly frontmatter fields (source_url, date_saved, date_published, author, tags, word_count), so no additional processing is needed.
When the user is NOT in a research context (just wants to download a page to a specific directory), follow the standard workflow above — ask for the output directory as usual.