Skip to main content

Overview – What is PullMD?

Anything in, clean Markdown out. PullMD is a self-hosted service that turns web pages, Reddit and Hacker News threads, PDFs and Office files, YouTube videos, images and audio into clean, token-lean Markdown, for you and for your AI agents.

Why use PullMD?​

Agents are bad at reading the web. Raw HTML spends context on navigation, cookie banners and scripts, and built-in fetch tools often fail on JavaScript-heavy pages, PDFs and comment threads. PullMD sits in between: one URL or file in, only the content out.

Token counts from the PullMD README for three example pages (cl100k_base tokenizer, measured October 16, 2026):

PagePlain curlPullMDPullMD with ?query=
Encyclopedia article99,45812,549662
Developer documentation page48,6116,591454
Reddit thread with comments, using Reddit API credentialsblocked by a bot check6,381644

The curl column is what a basic fetch tool hands an agent. The last column uses query-scoped extraction: ask a question and get back only the sections that answer it.

What a request looks like​

PullMD runs on your own machine or server. After the Quickstart it listens at http://localhost:3000; on a server, use the address you gave it. To convert a page, pass its address as url:

curl "http://localhost:3000/api?url=https://docs.python.org/3/tutorial/venv.html&frontmatter=true"

PullMD fetches the page, drops everything that isn't content, and returns Markdown. frontmatter=true adds a YAML block with the source and how it was read; without it you get the body alone. The response, shortened:

---
title: 12. Virtual Environments and Packages — Python 3.15.1 documentation
url: https://docs.python.org/3/tutorial/venv.html
source: readability
fetched: 2026-10-23T23:09:08.642Z
language: en
site: Python documentation
---

# 12. Virtual Environments and Packages — Python 3.15.1 documentation

## 12.1\. Introduction[¶](#introduction "Link to this heading")

Python applications will often use packages and modules …

Your agents make the same request through the MCP server or the Claude Code skill, so you rarely type it yourself. Every field is described in Output format.

Four ways in​

What it reads​

InputHow
Web pagesNative Markdown when a site answers text/markdown (Cloudflare does), otherwise Readability and Trafilatura (the better result wins), then headless Chromium for JavaScript-heavy pages. See How extraction works.
Reddit and Hacker NewsDetected automatically, with the comment tree. See Reddit and Hacker News.
DocumentsPDF, Word, PowerPoint, Excel, EPUB, ZIP, CSV, JSON and XML, by URL or upload. Optional OCR for table-heavy PDFs. See Documents.
YouTubeTitle, description and transcript with timecodes. No API key. See YouTube transcripts.
Images and audioCaptions and transcripts through any OpenAI-compatible model, including local ones. See Images and audio.

Next steps​