Install
$ agentstack add skill-l0ng-ai-papr-papr-rss ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Papr RSS CLI
papr is a token-efficient, agent-facing CLI over the user's local Papr RSS database. It emits TOON on stdout (≈40% cheaper than JSON, via the official toon-format encoder), keeps diagnostics on stderr, and returns structured errors with exit codes (0 success/no-op, 1 runtime, 2 usage). Reads are token-minimal by default; long article bodies are truncated with a --full escape hatch.
Run papr with no arguments first — it prints the unread dashboard plus the most useful next commands, so you can orient without reading a manual.
Core flow
papr # home: unread/starred counts + recent unread + next steps
papr feeds # subscriptions grouped by folder, with unread counts
papr list --feed # articles in a feed (defaults to unread; --all for read too)
papr list --starred # smart views: --starred / --later / --tag / --folder
papr list --fields author,url # add columns: author,url,snippet,type,feed_id,published
papr read [...] # plain-text body, truncated; pass several ids to batch
papr read --feed --unread --limit 5 # read a feed's latest unread in one call
papr read --full # the complete body when truncation hid something
papr search "" # FTS5 full-text search across every article
Triage & subscriptions
papr mark read [...] # state: read|unread|star|unstar|later|unlater (idempotent)
papr mark-all --feed # mark a whole view read
papr subscribe # auto-discovers the feed, inserts it, fetches it
papr refresh [--feed ] # fetch new articles over the network (RSS + newsletters)
papr extract # fetch & store the cleaned full text of an article
Management (mirrors the desktop app)
papr tags | papr tag add | papr tag create ""
papr folders | papr folder create "" | papr feed move --folder
papr rules | papr rule create "" "" --action star
papr highlights [--article ] | papr highlight create ""
papr newsletters | papr newsletter add --title .. --host .. --user .. --password ..
papr opml import | papr opml export
papr settings get | papr settings set
papr stats
Sync
papr sync status | papr sync run # reconcile read/starred + subscriptions with FreshRSS/Miniflux
There are no summarize/ask/digest/translate commands: you are the language model, so read the text with papr read (or gather candidates with papr search) and summarize, answer or translate it yourself — no second AI provider is involved.
Destructive verbs require --yes; without it they fail with exit 2 and tell you the exact command to re-run:
papr unsubscribe --yes # delete a feed and its articles
papr admin cleanup --yes # also: admin vacuum / admin reset
papr folder delete --yes # likewise tag/rule/highlight delete, newsletter remove
Notes
- Every command takes
--db(or thePAPR_DBenv var) if the database
is not in the desktop app's default location.
- Output is data, not prose. Each list states a definitive total
(count: N of M unread) so you never need to paginate just to learn the size.
- If the answer is "nothing", the command says so explicitly — a zero is an
answer, not a reason to retry with different flags.
- Prefer the ambient SessionStart hook (
papr setup) so the unread dashboard is
already in context at the start of a conversation; this skill is the lower-overhead alternative that loads only when a feed task comes up.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: l0ng-ai
- Source: l0ng-ai/papr
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.