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:
pharchive.ph (public cache)12ft12ft.io proxyrefGoogle Referer header trickcookiecookie-clearing (metered paywalls)httpScrapling HTTP fetch (curl_cffi impersonation)botGooglebot user-agent spoofstealthScrapling headless browser plus Cloudflare bypassdynamicScrapling Playwright render (JS-heavy)wbWayback 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 pipxorbrew 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-environmenton Ubuntu/Debian, add--break-system-packagesor 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 botfirst
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file freeread-0.3.3.tar.gz.
File metadata
- Download URL: freeread-0.3.3.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
832960c6661c546d5853afbf2ea6cf4f689302830831dc0395d49996b25d236a
|
|
| MD5 |
e8dd6983633339634c03c5b2236dc7c9
|
|
| BLAKE2b-256 |
2dbc0e4d525e38c001435aa84932e6cca10dd2d0f4a6699ce10e56930aae087f
|
File details
Details for the file freeread-0.3.3-py3-none-any.whl.
File metadata
- Download URL: freeread-0.3.3-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08e22a0df6b953bbdb91115dd6dfd4e905df9fce9def229804bd181c123838a1
|
|
| MD5 |
25101372bc1819e9315dd1b0080d7e4e
|
|
| BLAKE2b-256 |
3469bdcc3c87f219de78c89782e5ac29f7a1b6811c0e2fc9cc89cce6f5d5bc00
|