Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By falense
Generate personalized newspaper-style digests from any news source, reflect on Claude Code sessions to produce structured retrospectives, and create GitHub issues from improvement ideas to bridge noticing problems and tracking fixes.
npx claudepluginhub falense/openpaperCreate a structured GitHub issue from a session reflection or improvement idea using the gh CLI. Use this skill when the user asks to create an issue from a reflection, file an improvement, log a lesson learned, or says things like "make an issue for that", "track this", "file that as a bug", "create an improvement issue", or after running /reflect when the user agrees to capture findings. Also use when the user identifies something that should be fixed or improved and wants it tracked in GitHub.
Generate a personalized newspaper-style digest from any news sources. Use this skill whenever the user wants to read news, set up news sources, get a daily digest, curate articles, generate a newspaper, create a morning briefing, manage their reading preferences, or says things like "make my paper", "what's new today", "add a news source", "show me the news", or "update my preferences". Also use when the user mentions OpenPaper, newspaper layout, or news curation. This skill handles the full pipeline: adding sources (writing fetchers), curating content, and rendering beautiful HTML newspaper editions.
Reflect on the current Claude Code session — review what went well, what didn't, and extract actionable takeaways. Use this skill when the user asks to reflect, review the session, do a retrospective, think about what happened, or says things like "how did that go", "what could we do better", "session review", "retro", or "what did we learn". Also use it proactively at the end of long or complex sessions when the user wraps up.
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Accumulates project knowledge across sessions and developers through structured lessons and hooks
30 specialized journalism agents for investigative reporting, fact-checking, disinformation analysis, AI content detection, foreign news de-biasing, bot & troll detection, multimedia production, and content distribution
Automated research paper discovery, PDF monitoring, and AI-powered summarization for academic and technical literature
The Hitchhiker's Guide — content creation suite with automated pipeline, daily briefs, and blog writing
Comprehensive AI news tracking, deep research agents, and automated Notion/Teams/Slack publishing.
PDCA-native Knowledge Work OS with Cross-Plugin Orchestrator — 16 skills, 17 Pokemon agents, 31 MCP tools, Artifact Viewer, Cycle Memory with Self-Evolution, Hard Length Floors + Reviewer Diversity Gates, runtime plugin ecosystem dispatch, and a zero-key adaptive fetch chain (unblock) for hostile URLs
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