Skip to content

v1.0.2 — first public release

Choose a tag to compare

@syswave-dev syswave-dev released this 27 Apr 07:40
· 138 commits to main since this release

First public release of PullMD on GitHub. Self-hosted URL→Markdown service for humans and AI agents — PWA, REST, MCP, and a downloadable Claude Code skill, all from one container.

Highlights

  • Multi-strategy extraction. Cloudflare's native Markdown endpoint, with Readability + Trafilatura running in parallel and picked by quality score for everything else.
  • Reddit-aware. Auto-detects threads (incl. redd.it and /s/ share links), returns post + comment tree with tunable comment_depth / comment_limit.
  • Share IDs that stay live. Every conversion gets an 8-hex permalink; GET /s/:id re-fetches if older than 1h, falls back to the last good snapshot if the source dies.
  • Four interfaces, one codebase. PWA frontend, REST (/api), MCP (POST /mcp, Streamable-HTTP), and a downloadable Claude Code skill bundle.
  • Multi-arch images (linux/amd64, linux/arm64) on Docker Hub and GHCR.

Pull

# Docker Hub
docker pull aeternalabshq/pullmd:1.0.2

# GHCR
docker pull ghcr.io/aeternalabshq/pullmd:1.0.2

Quick start

mkdir pullmd && cd pullmd
curl -O https://raw.githubusercontent.com/AeternaLabsHQ/pullmd/main/docker-compose.yml
docker compose up -d
# → http://localhost:3000

See README for full configuration, the Traefik variant, and the /help setup guide.

In this release

  • Multi-stage Dockerfile (Node 22 Alpine), ~55% smaller image
  • npm audit fix: path-to-regexp 8.4.2, undici 7.25.0
  • scripts/docker-push.sh reads version from package.json and publishes multi-arch via buildx
  • GitHub Actions workflow auto-builds and publishes pullmd + pullmd-trafilatura to GHCR on main and version tags
  • Quick-start compose now image-based (no clone, no build); Traefik variant split into its own compose file

License

GNU AGPL v3