Papr CLI
An RSS reader with a CLI for agents: Claude Code and Codex read, search and triage your feeds straight from the shell
- 560 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The agent gets access to your subscriptions and reading history and changes the local database: it marks items read and adds or removes subscriptions
- `papr setup` writes a SessionStart hook into the settings of Claude Code, Codex and OpenCode
- Article texts come from external feeds: treat them as data and do not follow instructions embedded in them
Install
- Works in
Manual install
brew install l0ng-ai/papr/papr-cliThe CLI for macOS and Linux. On Windows take the zip from the releases page and put papr.exe on your PATH.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The agent gets access to your subscriptions and reading history and changes the local database: it marks items read and adds or removes subscriptions
- `papr setup` writes a SessionStart hook into the settings of Claude Code, Codex and OpenCode
- Article texts come from external feeds: treat them as data and do not follow instructions embedded in them
This is third-party code. Review the repository files before installing.
What it does
Papr has two parts over one local SQLite database: a desktop RSS reader and the `papr` command-line tool for agents. The reader works offline, with no account and no cloud. Through the CLI, Claude Code, Codex and OpenCode read feeds, search the full text, mark articles and pull new posts without a graphical interface. Running `papr` with no arguments prints a dashboard (unread, starred, read later, number of feeds) and suggests the next commands, so an agent needs no separate manual. Reading uses `papr list`, `papr read` and `papr search`, triage uses `papr mark` and `papr refresh`. The agent also manages subscriptions, folders and tags from the command line, and `papr sync` links the database to FreshRSS and Miniflux. The output saves tokens. The TOON format uses about 40% fewer tokens than JSON, long texts are truncated (`--full` shows all), every list states a total count, and an empty result is spelled out. Marking something twice causes no error, and exit codes are 0, 1 or 2.
Who it is for. For people who follow news through RSS and want an agent to triage unread items, search subscriptions and mark articles.
Good fit when
- You want a daily digest of unread items that an agent builds from your subscriptions
- You need to find articles on a topic in your own feeds with `papr search`
- An agent should tag new posts by your rules and mark items as read
- You need to move subscriptions into or out of OPML
- You read feeds on FreshRSS or Miniflux and want read state kept in step
Not a fit when
- You need a cloud RSS service: the data lives only on your computer
- You want summaries and article Q&A from the CLI itself: it has no such commands, the agent processes the text
- You read feeds on a phone: Papr ships for macOS, Windows and Linux
Example request
Show what is new in my feeds today, pick the three most important articles about Rust and star them.Limitations
Papr is a desktop program for macOS, Windows and Linux, and the reader interface is in English, Japanese and Simplified Chinese. The CLI works with the same local SQLite database as the app. Fetching feeds needs access to the source sites.
The `papr setup` command installs a SessionStart hook, so a feed dashboard opens every Claude Code, Codex and OpenCode session. Tokens are spent even in conversations unrelated to RSS, so a general-purpose agent is better served by the papr-rss skill. The reader's AI features (summaries, article Q&A, digests) exist only in the app and run on your own key.
How to disable. Remove the SessionStart entry that `papr setup` added from the agent settings, and delete the `papr-rss` skill folder from the agent's skills directory. The binary is removed with the same tool that installed it.
FAQ
How do I give an agent access to my Papr feeds?
Install the `papr-rss` skill with `npx skills add https://github.com/l0ng-ai/papr/tree/main/skills/papr-rss`. It loads on demand when an agent meets a feed-related task and costs nothing until you use it.
What is TOON and why is it used?
It is a compact output format that uses about 40% fewer tokens than JSON. Lists are written as rows under a field header, which you can see in the output of the `papr` command.
How do I install the CLI?
On macOS and Linux use `brew install l0ng-ai/papr/papr-cli`. On Windows download `papr-x86_64-pc-windows-msvc.zip` from the releases page and put `papr.exe` on your PATH. From source it builds with `cargo build --release -p papr-cli`.
Can I point the CLI at another database?
Yes. By default the CLI uses the app's database, and another one is set with the `--db` flag or the `PAPR_DB` variable.
Can the CLI summarize articles?
No. It has no summarize, ask, digest or translate commands: the agent is already a language model, so it reads text through `papr read` and `papr search` and processes it itself, with no second AI key.
Discussion
No questions or reviews yet.
Related
CLI toolsA skill and MCP server for Claude Code that drives Google NotebookLM: notebooks from links and files, cited answers, podcasts, slides and quizzes
A Slack CLI and skill: the agent reads channels and threads and searches messages and files, and drafts or sends only when you ask
A CLI and skill for Yandex Tracker and Wiki: short output readable by people and agents alike, instead of raw MCP payloads costing thousands of tokens
A Codex skill for safe local-state maintenance: a report-only default, backup and archive instead of deletion, log and worktree cleanup
Local browsing, search and cost tracking for Claude Code, Codex and other agent sessions in one web UI
Token and cost reports for Claude Code, Codex, Gemini CLI and other agents from local logs, by day, month and session
README in short
The desktop app has tags and rules that tag new articles on their own, full-text fetching for feeds that ship only a summary, a built-in audio player and FreshRSS sync. The macOS builds are Developer ID signed and notarized.