mcpField
S
save-md

save-md

github.com/mblodeDocuments169287 installsUpdated 1d ago
Repository

About save-md

save-md is a skill for saving one named source as a complete Markdown file in the user's tree. It emphasizes preserving fetched source bytes rather than summarizing, and checking the saved file's ending against the source.

Key features

  1. 01Save a named source to a .md file
  2. 02Handle URLs, attachments, pastes, videos, Docs and PDFs
  3. 03Use fetched bytes rather than summaries
  4. 04Verify the saved file's last paragraph

Use cases

  1. 01Archive a web page as Markdown
  2. 02Save a named PDF or document locally
  3. 03Check that a saved copy includes the source ending

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mblode/agent-skills --skill save-md

After installing, type/save-mdin Claude Code to confirm it loaded.

Bundled filesevals/evals.jsonreferences/source-endpoints.md

Details

From the project README

Save as Markdown

Write the named source to a .md file, in full, and say where it is. The body comes from the fetched bytes, never from a summary.

  • IS: one named source (URL, attachment, paste, YouTube video, Google Doc, PDF) to one .md in the user's tree.
  • IS NOT: answering from a fetch, summarizing into chat, crawling beyond the URLs named, or reconstructing a talk from memory.

Done

A .md exists where the user can open it, with this frontmatter, and reading it back returns the source's last paragraph:

---
title: "<title>"
source: "<URL or path>"
date: "<date -u +%Y-%m-%dT%H:%M:%SZ, run now>"
type: web | youtube | gdoc | sheet | slides | pdf | docx | tweet | conversation
---

Fetch with curl -sSL -o <file> <url> and read the file. Prefer a text endpoint over HTML chrome. A missing file with a named reason (paywall, login wall, bot check, private doc) beats a plausible one.

FileRead when
references/source-endpoints.mdAlways, for the URL's host: the tested endpoint, its curl line, the failure each one shows, and the opt-in fallback reader

Gotchas

  • WebFetch hands the page to a small model and returns its answer: a 1,200-word post came back as 120 words. Only Content-Type: text/markdown under 100K characters passes through intact.
  • oEmbed, GitHub ?raw=true, and Drive downloads redirect across hosts. Without -L you save an empty 301.
  • YouTube's "Sign in to confirm you're not a bot" is an IP block: --cookies-from-browser on a laptop, stop in a sandbox. The description is not the talk.
  • An empty .md next to a large PDF means a scan, not a blank document: render the pages and read them.

Maintenance only: evals/evals.json holds scenarios and routing prompts for anyone changing this skill.

Comments

Markdown supported