Skip to content
Worix
BrowsePublish
Log inSign Up

Feedcli

RSS/Atom/JSON-Feed management tools for AI agents. Subscribe to feeds, fetch new articles, search content, manage read/star state, organize with categories a...

90 downloads
Free
Reviewed

feedcli Skill

RSS/Atom/JSON-Feed management tools backed by a local SQLite database. All data operations are deterministic with zero LLM token cost — intelligence (filtering, ranking, summarization) belongs in your agent logic, not in these tools.

Primary Workflow: Digest Curation

  1. Fetch — Call feeds_refresh to pull new items from all subscribed feeds.
  2. Read — Call feeds_get_unread to get unread articles (titles, summaries, URLs, IDs).
  3. Evaluate — Use your judgment to filter/rank articles by user interests.
  4. Mark processed — Call feeds_mark_read with ALL processed item IDs (interesting or not) so they aren't re-processed next cycle.

Important: Always mark items as read after processing, even if they weren't interesting. Failing to do so causes items to accumulate and be re-evaluated every cycle.

Available Tools

Feeds

ToolPurposeKey params
feeds_addSubscribe to a new feed (auto-discovers from website URL)url, category (optional)
feeds_listList all subscribed feedscategory (optional filter)
feeds_infoShow details for a single feedfeed_id
feeds_deleteRemove a feed subscriptionfeed_id
feeds_refreshFetch new items from all feeds—
feeds_discoverDiscover feed URLs from a website without subscribingurl
feeds_retryReset error state and re-fetch a broken feedfeed_id

Items

ToolPurposeKey params
feeds_get_unreadGet unread items for digest processinglimit (default 50)
feeds_get_itemsGet items with flexible filteringfeed_id, unread_only, limit
feeds_mark_readMark items as read after processingitem_ids (comma-separated)
feeds_mark_all_readMark all items (or all in a feed) as readfeed_id (optional)
items_mark_unreadMark an item as unreaditem_id
items_searchFull-text search across item titles and contentquery, feed_id (optional), limit
items_starStar/bookmark an itemitem_id
items_unstarRemove star from an itemitem_id
items_starredList all starred itemslimit
items_get_urlGet the URL for an item (for opening in browser)item_id

Tags

ToolPurposeKey params
items_tagAdd a user-defined tag to an itemitem_id, tag
items_by_tagList all items with a given tagtag, limit (optional)

Categories

ToolPurposeKey params
categories_listList all categories in use—
categories_createCreate a new categoryname
categories_setAssign a category to a feedfeed_id, name

OPML

ToolPurposeKey params
opml_importImport feeds from an OPML filefile_path
opml_exportExport all feeds to an OPML filefile_path

Database

ToolPurposeKey params
db_infoShow database stats (feed/item counts, DB size)—

Usage Patterns

Adding feeds

# Auto-discovers feed URL from any website
feeds_add("https://blog.example.com")

# Direct feed URL with a category
feeds_add("https://example.com/feed.xml", category="tech")

# Discover feeds without subscribing
feeds_discover("https://example.com")

Digest processing

# 1. Refresh all feeds
feeds_refresh()

# 2. Get unread items
feeds_get_unread(limit=30)

# 3. After evaluating, mark ALL items as read
feeds_mark_read("42,43,44,45,46")

Searching and starring

# Full-text search
items_search("machine learning", limit=10)

# Star interesting items for later
items_star(42)

# Review starred items
items_starred()

Categories

# Create a category
categories_create("tech")

# Move a feed to a category
categories_set(feed_id=1, name="tech")

# List feeds filtered by category
feeds_list(category="tech")

OPML import/export

# Import feeds from another reader
opml_import("/path/to/subscriptions.opml")

# Export for backup
opml_export("/path/to/backup.opml")

Item tagging

# Tag an item for future reference
items_tag(42, "urgent")
items_tag(42, "ai-research")

# Find items with a specific tag
items_by_tag("ai-research")

Design Constraints

  • No LLM calls inside feedcli. All intelligence (filtering, ranking, summarization) belongs in your agent logic, not in these tools. Tools only do CRUD and HTTP fetching.
  • Summaries are truncated to 300 chars in feeds_get_unread output to keep token usage low. Full content is available via feeds_get_items if needed.
  • Item IDs are stable integers. Use them for all mutation operations (mark read, star, tag).
  • Feed discovery is automatic. Pass a website URL to feeds_add and it will find the RSS/Atom feed. Use direct feed URLs only if discovery fails.

Setup

feedcli must be installed in the same Python environment as the agent:

pip install -e /path/to/feedcli

The database is stored at $XDG_DATA_HOME/feedcli/feedcli.db (default: ~/.local/share/feedcli/feedcli.db). No setup required — tables are created automatically on first use.

Download

ZIP package — ready to use

Skill Info

Creator
Creator
Downloads
90
Published
Mar 15, 2026
Updated
Mar 16, 2026