A personalized newspaper that knows only you will ever read it. OpenPaper is a Claude Code plugin that turns any collection of news sources into a single-reader daily newspaper.
FAQ
openpaper is a Claude Code plugin with 3 hand-picked skills for content work, indexed on Flowy. Install it with the command on its page. It includes improve, openpaper, reflect. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
$ npx -y skills add falense/openpaper --agent claude-code
Repo: falense/openpaper
A personalized newspaper that knows only you will ever read it.
OpenPaper is a Claude Code plugin that turns any collection of news sources into a single-reader daily newspaper. You point it at URLs, RSS feeds, or topics; it writes Python fetchers that scrape them deterministically, curates the articles to your taste, and renders the result as a broadsheet-style HTML page โ complete with blackletter masthead, multi-column grid, halftone images, and animated ink-draw headlines.
There is no server, no account, no feed algorithm optimizing for engagement. Just your sources, your preferences, and a newspaper laid out for one.
Three stages, each with a clear boundary:
Under the hood, the Ingest stage runs in two phases:
--listing-only mode, outputting article metadata (title, URL, date) without fetching content. RSS and API fetchers skip Playwright entirely in this phase. All fetchers run in parallel.seen.txt, then batch-fetches full article text for new articles only, using a single shared Playwright browser. Paywall detection, content extraction, and HTML caching are centralized.This architecture (inspired by TriOnyx newsagg) avoids wasted work: content is only fetched for articles that pass dedup, and the browser only launches when there's something new to fetch.
Your data lives in .openpaper/ inside your project:
.openpaper/
โโโ sources/ # one .py file per source (+ _base.py shared module)
โ โโโ _base.py # shared utilities (deployed by fetch_all.py)
โ โโโ hackernews.py
โ โโโ bbc.py
โ โโโ nrk.py
โ โโโ ...
โโโ preferences.md # your interests + feedback history
โโโ incoming/ # articles awaiting curation
โโโ saved/ # archived articles from past editions
โโโ editions/ # rendered HTML newspapers
โโโ cache/ # per-source HTML + listing caches
โโโ seen.txt # centralized dedup log (URLs)
Requires Claude Code and uv. Playwright's Chromium must be installed once:
uv run playwright install chromium
Clone the repo and start Claude Code inside it:
git clone https://github.com/falense/openpaper.git
cd openpaper
claude
Install OpenPaper as a Claude Code plugin to use it from within any project:
claude plugin add https://github.com/falense/openpaper.git
The /openpaper skill and all commands will be available in your project. Your data (sources, editions, preferences) lives in .openpaper/ inside your working directory โ not inside the plugin.
/openpaper
Or just say:
On first run, OpenPaper walks you through adding sources, setting preferences, and generating your first edition.
| Type | Listing method | When to use | Example sources |
|---|---|---|---|
| RSS | feedparser + urllib | Site publishes an RSS/Atom feed | bbc, nrk, vg, openai, importai, thegradient |
| Playwright | Headless Chromium | JS-rendered listing page, no feed available | anthropic, deepmind, kode24 |
| API | httpx | Documented JSON API | hackernews |
Each fetcher is a standalone PEP 723 Python script โ uv run handles dependencies automatically. See the fetcher guide for the full contract.
A single responsive broadsheet that scales from 375px mobile to 1960px desktop spread. Features UnifrakturCook blackletter masthead, paper grain, halftone image effects, and animated ink-draw headlines.
MIT
.claude/
.claude-plugin/
plugin.json
CLAUDE.md
settings.json
skills
.dockerignore
.gitignore
.screenshots/
hero.png
AGENTS.md
CLAUDE.md
docker-compose.yml
Dockerfile
entrypoint.sh
LICENSE
pyproject.toml
README.md
scripts/
compare_runs.py
run_test.sh
test_flow.py
skills/
improve/
SKILL.md
openpaper/
fetchers/
markets.py
weather.py
references/
curation-guide.md
edition-schema.md
fetcher-guide.md
scripts/
fetch_all.py
fetcher_base.py
pool.py
render.py
serve.py
SKILL.md
templates/
assets/
magic.css
magic.js
broadsheet.html.j2
reflect/
SKILL.md
TEST.mdยฉ 2026 Flowy ยท Free and open source
Built for Claude Code ยท Not affiliated with Anthropic