Skip to main content

Read paywalled articles in your terminal

Project description

freeread 📰

Read paywalled articles directly in your terminal. No browser. No ads. No friction.

freeread https://www.nytimes.com/some-article

How it works

freeread tries multiple bypass methods in order until one works:

  • ph archive.ph (public cache)
  • 12ft 12ft.io proxy
  • ref Google Referer header trick
  • cookie cookie-clearing (metered paywalls)
  • http Scrapling HTTP fetch (curl_cffi impersonation)
  • bot Googlebot user-agent spoof
  • stealth Scrapling headless browser plus Cloudflare bypass
  • dynamic Scrapling Playwright render (JS-heavy)
  • wb Wayback Machine (slowest)

Scrapling methods are optional. Install with pip install freeread[scrapling].

Install

Requirements: Python 3.10+

pipx (recommended for most users)

Installs freeread as an isolated CLI tool. No virtualenv setup, no conflicts.

pipx install freeread

# With Scrapling-powered methods
pipx install "freeread[scrapling]"

Install pipx first if needed: pip install pipx or brew install pipx

uv (recommended for developers)

uv is a fast Rust-based Python package manager.

# Install uv (one-time)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install freeread
uv pip install freeread

# With Scrapling-powered methods
uv pip install "freeread[scrapling]"

# Or run directly without installing
uv run freeread <url>

pip (classic)

pip install freeread

# With Scrapling-powered methods
pip install "freeread[scrapling]"

If you hit externally-managed-environment on Ubuntu/Debian, add --break-system-packages or use pipx/uv instead.

Run from source

git clone https://github.com/GHesericsu/freeread
cd freeread
pip install -e .
freeread <url>

Update

# pipx
pipx upgrade freeread

# uv
uv pip install --upgrade freeread

# pip
pip install --upgrade freeread

Usage

# Read any article
freeread https://www.wsj.com/some-article

# Clean markdown output (good for piping to an LLM)
freeread https://www.theatlantic.com/... --md > article.md

# Force a specific method
freeread https://ft.com/article --method ph
freeread https://ft.com/article --method cookie
freeread https://ft.com/article --method stealth

# Use a proxy (optional)
freeread https://ft.com/article --proxy "$DECODO_MOBILE_PROXY"

# Use your own session cookies (for hard paywalls like WSJ Live)
freeread https://wsj.com/... --cookies ./wsj-cookies.txt

# Raw text output (no rich formatting, good for piping)
freeread https://nytimes.com/article --raw

# List available methods
freeread --list-methods

# Top headlines from multiple sources (default)
freeread news

# Pick a single source
freeread news --source bbc
freeread news --source hn
freeread news -s aljazeera --raw

# Available sources: mix (default), google, bbc, aljazeera, npr, hn, reddit

Limitations

  • Hard server-side paywalls (FT, WSJ 2024+) may not work if no archive exists
  • Some sites actively block archive services
  • Brand new articles may not have an archive yet — try --method bot first

Notes

This tool only accesses publicly cached or archived versions of articles. It does not circumvent authentication or access content that was never publicly available.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freeread-0.3.5.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freeread-0.3.5-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file freeread-0.3.5.tar.gz.

File metadata

  • Download URL: freeread-0.3.5.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for freeread-0.3.5.tar.gz
Algorithm Hash digest
SHA256 fb616be4ab7ba4a3f1dcf049b28918bcdb3d0ad810ed47bcb5d734c2c907b5de
MD5 296b5f021987c3a95fd74f21b75e9fc1
BLAKE2b-256 3b00517d25aa224c78ef039ba7229e1d0f04d9cf41c8bb1ff78f62f8dbe60bf1

See more details on using hashes here.

File details

Details for the file freeread-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: freeread-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for freeread-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 df719b64143ecf36dcf60b30cda0af80b9e74ad371841e35f0d750ab59e950a5
MD5 b8f4b544e9eb5bafe4e624d002d26bc3
BLAKE2b-256 55eb4d9ae2ce161b6fed312a395921456867cd9a2cca6103eeb956ed5c90c359

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page