Skill Detail

Serve clean Markdown from URLs and files with PullMD

Use PullMD as a self-hosted Markdown conversion service for agents, exposing web pages, documents, media transcripts, Reddit threads, and uploaded files through REST, MCP, and a Claude Code skill.

Research & ScrapingMCP
Research & Scraping MCP Security Reviewed
โญ 197 GitHub stars
INSTALL WITH ANY AGENT
npx skills add agentskillexchange/skills --skill serve-clean-markdown-from-urls-and-files-with-pullmd Copy
Works best when you want a reusable capability, not another fragile one-off prompt.
At a glance
Tools required
Docker and Docker Compose
Install & setup
mkdir pullmd && cd pullmd && curl -O https://raw.githubusercontent.com/AeternaLabsHQ/pullmd/main/docker-compose.yml && docker compose up -d
Author
AeternaLabsHQ
Publisher
Open Source Maintainer
Last updated
Aug 1, 2026
Quick brief

# Serve clean Markdown from URLs and files with PullMD

How it works

What this skill actually does

Use this skill when an agent needs repeatable Markdown conversion behind a self-hosted endpoint instead of ad hoc scraping. PullMD converts web pages, local HTML, PDFs, Office files, EPUBs, images, audio, YouTube videos, Hacker News threads, and Reddit threads into clean Markdown with frontmatter, cache controls, REST access, MCP access, and optional Claude Code skill packaging.

## What the agent/operator does

1. Deploy PullMD with Docker Compose or run it locally for development.
2. Configure optional sidecars and environment variables for Playwright rendering, MarkItDown document conversion, OCR, image captioning, audio transcription, YouTube transcripts, Reddit credentials, and auth.
3. Send URLs to `GET /api?url=…` or files to `POST /api/file`.
4. Connect capable agents to `POST /mcp` for stateless Streamable-HTTP MCP access.
5. Use share links or fixed refreshable links when downstream agents need stable Markdown inputs.
6. Inspect frontmatter for source, quality, model, transcript, cache, and cost metadata before using converted content in context.

## When to invoke

Invoke this instead of manually copying browser text, running one-off scrapers, or relying on a public conversion site when conversion should be private, repeatable, cacheable, and accessible from multiple agents. It is strongest for research, retrieval prep, document ingestion, YouTube transcript capture, and agent context-building workflows.

## Scope boundary

This is not a generic web app listing or a promise that every site can be scraped. Keep the workflow scoped to operating a self-hosted Markdown conversion endpoint and connecting agents through REST, MCP, or the packaged Claude Code skill.

## Requirements

– Docker Compose for the recommended deployment path, or Node.js for local development.
– Optional sidecars for rendered pages and document conversion.
– Optional model/API credentials for OCR, image captioning, or audio transcription.
– A network boundary and auth choice appropriate for the content being converted.

## Installation

Recommended Docker path:

curl -O https://raw.githubusercontent.com/AeternaLabsHQ/pullmd/main/docker-compose.yml
docker compose up -d

For Traefik deployments, use the upstream `docker-compose.traefik.yml` variant. For local development, run `npm install` and follow the README configuration notes.

## Verification notes

Source metadata was verified from the exact GitHub repository and README. As of this intake run, AeternaLabsHQ/pullmd had 197 GitHub stars, an AGPL-3.0 license, same-day push and release activity, and README evidence for REST `/api`, `POST /api/file`, MCP `/mcp`, Claude Code skill packaging, Docker Compose deployment, document conversion, OCR, image/audio media tiers, YouTube transcripts, Reddit handling, frontmatter controls, caching, and auth boundaries.