Paste a URL. Get a clean, readable article. No ads, no paywalls, no JavaScript — and it returns in under a second.
Most paywall-bypass tools work by rewriting every asset URL on the page so that images, scripts, and stylesheets all route back through the proxy server. The result is hundreds of sub-requests per page load.
It works, but it's slow enough to kill the habit.
This tool does one thing: fetch the article HTML, extract the content, return a self-contained page. Images load directly from the source CDN. The server makes one network request and does one parse. A typical article returns in under a second, including the round-trip to the origin site.
- Fetches as Googlebot (user-agent +
X-Forwarded-For), which bypasses soft paywalls on many news sites - Extracts article content with go-readability (Go port of Mozilla's Readability.js)
- Pulls the title from
og:titlebefore falling back to<title>— more reliable than DOM extraction on complex pages - Promotes lazy-loaded images (
data-src→src) so readability keeps them - Injects the
og:imageas a lead image when readability finds no images in the body
The output is clean HTML with a dark-mode-aware stylesheet and no JavaScript.
Paste a URL directly into the path:
http://your-server:8080/https://example.com/article
Or use the home page form at http://your-server:8080/.
The ?url= query parameter also works:
http://your-server:8080/?url=https://example.com/article
One-liner:
docker run -p 8080:8080 ghcr.io/carloscae/readerDocker Compose (copy docker-compose.yml from this repo, or use this):
services:
reader:
image: ghcr.io/carloscae/reader:latest
container_name: reader
restart: unless-stopped
ports:
- "8080:8080"Build from source:
git clone https://github.com/carloscae/reader
cd reader
docker build -t reader .
docker run -p 8080:8080 readerGo 1.23+ required if building without Docker.
The server has no authentication. Run it on a private network (LAN or VPN) rather than exposing it publicly.
Tailscale is the easiest way to reach it from anywhere — install on your server and your phone, and http://your-tailscale-ip:8080/ works from any network with no port forwarding or firewall changes needed.
Set this up once and you can share any article from Safari directly to reader.
- Create a new Shortcut
- Add Get URLs from Input (Share Sheet input)
- Add Open URLs, set the URL to:
where
http://your-server:8080/[URL][URL]is the output of the previous action - Set the Share Sheet to accept Safari web pages
Share any article from Safari and it opens in reader instantly.
| Variable | Default | Description |
|---|---|---|
PORT |
8080 |
Port to listen on |
- Go standard library (
net/http) - go-shiori/go-readability