FreshRSS
Self-hosted RSS reader accessed via Google Reader compatible API (GReader). All operations go through a single python script.
Execution Rule
Run the user's requested command directly without pre-checking dependencies, environment variables, or configuration. If something is wrong, the script will fail with a clear error — check and fix only then.
Environment Variables
| Variable | Description |
|---|---|
FRESHRSS_URL |
Base URL (e.g. http://127.0.0.1:1180) |
FRESHRSS_API_USER |
API username |
FRESHRSS_API_PASSWORD |
API password |
💡 Environment variables can be configured in
~/.wmyskills/.env(shared across skills) orscripts/.env(takes priority if present). The script loads them automatically.
Usage
python scripts/freshrss.py <command> [options]
Common options for reading commands: --count N (default 20), -v/--verbose (include summary text).
Reading Articles
Recent articles
python scripts/freshrss.py recent --count 10
python scripts/freshrss.py recent --count 5 -v # with summary
Unread articles
python scripts/freshrss.py unread --count 20
Articles from a specific feed
python scripts/freshrss.py feed --url "https://example.com/rss" --count 10
Articles from a category
python scripts/freshrss.py category --name "Technology" --count 15
Starred articles
python scripts/freshrss.py starred --count 20
Search articles
Title only (fast, default 200 articles scanned, max 1000):
python scripts/freshrss.py search -k "keyword"
Title + content (slower, use --batch to control scan size):
python scripts/freshrss.py search -k "keyword" --deep --batch 500
Feed Management
List all subscriptions
python scripts/freshrss.py list-feeds
List categories
python scripts/freshrss.py list-categories
Unread counts
python scripts/freshrss.py unread-count
Add a feed
python scripts/freshrss.py add-feed --url "https://example.com/feed.xml" --category "News"
Move feed to another category
python scripts/freshrss.py move-feed --feed-id "feed/https://..." --to "NewCat" --from "OldCat"
Remove a feed
python scripts/freshrss.py remove-feed --feed-id "feed/https://..."
Mark article as read
python scripts/freshrss.py mark-read --item-id "tag:google.com,2005:reader/item/..."
Star an article
python scripts/freshrss.py star --item-id "tag:google.com,2005:reader/item/..."
Feed Recommendations
When asked for recommendations:
- Run
list-feedsto see current subscriptions and categories - Identify themes from feed titles and categories
- Use web search to find feeds in similar topics the user doesn't already follow
- Present recommendations grouped by interest area
Notes
- Auth token is fetched fresh on each invocation (no caching needed)
- All output is JSON for easy parsing
- Search is client-side filtered since GReader API lacks native search
- Feed stream IDs use format
feed/https://example.com/rss - Use
-vto include article summary in output (works on all reading commands)