agentleFS
FrankieeWFrankieeW/agent-skills/openclaw-rss/SKILL.md

openclaw-rss

Skill0 starsChanged 8 months agoMITView on GitHub

Use sfeed to parse RSS/Atom feeds and push updates to OpenClaw. Use when: user wants to monitor RSS feeds and get notifications via OpenClaw.

  • Installs packages

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 0 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use sfeed CLI to parse RSS/Atom feeds and integrate with OpenClaw for automated feed monitoring, notifications, and AI-powered feed …

    line 10
  2. Very specific:

    Create ~/bin/watch_feed.sh for continuous monitoring:

    line 112
  3. Very specific:

    Create ~/bin/rss_openclaw_summary.sh to use OpenClaw for AI summarization:

    line 145
  4. Very specific:

    Add to crontab (crontab -e):

    line 166
  5. Very specific:

    SSL errors: Use curl -ksL instead of curl -sL

    line 276
  6. Very specific:

    Debug: Run curl -sL "FEED_URL" | sfeed to see raw parsed output

    line 278
  7. Very specific:

    Missing items: Check cache files in ~/.sfeed/feeds/

    line 279

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

OpenClaw RSS Reader

Use sfeed CLI to parse RSS/Atom feeds and integrate with OpenClaw for automated feed monitoring, notifications, and AI-powered feed summarization.

Installation

brew tap frankieew/tap && brew install sfeed

Verify installation:

ls /opt/homebrew/Cellar/sfeed/*/bin/

Quick Start

Basic RSS Parsing

# Parse RSS feed to plain text
curl -sL "FEED_URL" | sfeed | sfeed_plain

# Example: AppInn feed
curl -sL "https://www.appinn.com/feed/" | sfeed | sfeed_plain

Output Formats

CommandDescription
sfeedRSS/Atom parser (TAB-separated)
sfeed_plainConvert to plain text
sfeed_htmlConvert to HTML
sfeed_jsonConvert to JSON Feed
sfeed_mboxConvert to mbox format
sfeed_cursesTUI feed reader
sfeed_framesHTML frames output

Common Feeds

OpenClaw Integration

This is the core feature: automatically monitor RSS feeds and send updates to OpenClaw for AI-powered notifications.

1. Feed Monitoring with Notification

Create ~/bin/rss_notify.sh:

#!/bin/bash
# Monitor RSS feeds and send updates to OpenClaw

FEEDS=(
    "https://www.appinn.com/feed/"
    "https://github.com/chneukirchen/sfeed/releases.atom"
    "https://hnrss.org/frontpage"
)

CACHE_DIR="$HOME/.sfeed/feeds"
mkdir -p "$CACHE_DIR"

for feed in "${FEEDS[@]}"; do
    feed_name=$(echo "$feed" | md5)
    cache_file="$CACHE_DIR/$feed_name"
    
    # Fetch and parse feed
    content=$(curl -sL "$feed" | sfeed)
    
    # Compare with cached version to get new items
    if [[ -f "$cache_file" ]]; then
        new_items=$(diff "$cache_file" <(echo "$content") | grep "^>" | sed 's/^> //')
    else
        new_items="$content"
    fi
    
    # Save current state
    echo "$content" > "$cache_file"
    
    # Send new items to OpenClaw
    if [[ -n "$new_items" ]]; then
        echo "$new_items" | sfeed_plain | while read -r line; do
            # Send to OpenClaw (adjust based on your setup)
            echo "📰 $line"
        done
    fi
done

Make it executable:

chmod +x ~/bin/rss_notify.sh

2. Real-time Feed Watch

Create ~/bin/watch_feed.sh for continuous monitoring:

#!/bin/bash
# Watch a feed and output new items in real-time

FEED_URL="${1:-https://www.appinn.com/feed/}"
POLL_INTERVAL="${2:-300}"  # Default: 5 minutes

echo "Watching $FEED_URL every $POLL_INTERVAL seconds..."
echo "Press Ctrl+C to stop"
echo ""

while true; do
    data=$(curl -sL "$FEED_URL" | sfeed)
    title=$(echo "$data" | cut -f2 | head -1)
    url=$(echo "$data" | cut -f3 | head -1)
    
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 📰 $title"
    echo "   ↳ $url"
    echo ""
    
    sleep "$POLL_INTERVAL"
done

Usage:

./watch_feed.sh "https://www.appinn.com/feed/" 600

3. OpenClaw AI Summary Integration

Create ~/bin/rss_openclaw_summary.sh to use OpenClaw for AI summarization:

#!/bin/bash
# Get RSS feed and use OpenClaw to summarize

FEED_URL="${1:-https://www.appinn.com/feed/}"

# Get latest 5 items
items=$(curl -sL "$FEED_URL" | sfeed | sfeed_plain | head -5)

# Send to OpenClaw for processing
# This assumes OpenClaw is configured with a command that accepts stdin
echo "$items" | openclaw --print-only << 'EOF'
Please summarize these RSS feed updates in Chinese:
{input}
EOF

4. cron Job for Automatic Updates

Add to crontab (crontab -e):

# Check feeds every hour
0 * * * * /Users/fwmbam4/bin/rss_notify.sh >> /Users/fwmbam4/.sfeed/logs/notify.log 2>&1

# Check every 30 minutes
*/30 * * * * /Users/fwmbam4/bin/watch_feed.sh "https://www.appinn.com/feed/" 1800 >> /Users/fwmbam4/.sfeed/logs/watch.log 2>&1

Create log directory:

mkdir -p ~/.sfeed/logs

sfeed_update Configuration

The recommended way to manage multiple feeds. Create ~/.sfeed/sfeedrc:

#!/bin/sh
# ~/.sfeed/sfeedrc - Feed configuration

# Feed definition function
feeds() {
    # format: feed "name" "url" "encoding"
    feed "appinn" "https://www.appinn.com/feed/" "UTF-8"
    feed "github" "https://github.com/chneukirchen/sfeed/releases.atom" "UTF-8"
    feed "hn" "https://hnrss.org/frontpage" "UTF-8"
    feed "techcrunch" "https://techcrunch.com/feed/" "UTF-8"
}

# Custom merge function to keep only latest items
merge() {
    awk -F'\t' '!seen[$1]++ { print }' "$1" "$2"
}

Initialize and run:

mkdir -p ~/.sfeed/feeds
cp /opt/homebrew/Cellar/sfeed/*/sfeedrc.example ~/.sfeed/sfeedrc
$EDITOR ~/.sfeed/sfeedrc
sfeed_update

Format output:

# Plain text
sfeed_plain ~/.sfeed/feeds/* > ~/.sfeed/feeds.txt

# HTML
sfeed_html ~/.sfeed/feeds/* > ~/.sfeed/feeds.html

# JSON (for programmatic use)
sfeed_json ~/.sfeed/feeds/* > ~/.sfeed/feeds.json

Filter Examples

# Get only titles from all feeds
cat ~/.sfeed/feeds/* | cut -f2

# Filter by keyword
curl -sL "https://www.appinn.com/feed/" | sfeed | sfeed_plain | grep -i "OpenClaw"

# Extract URLs only
curl -sL "FEED_URL" | sfeed | cut -f3

# Get items newer than timestamp
curl -sL "FEED_URL" | sfeed | awk -F'\t' '$1 > 1773289469'

# Show only unread (new) items
curl -sL "FEED_URL" | sfeed | sfeed_plain | grep "^N"

Advanced Usage

HTML Output with Styles

# Generate HTML with default style
curl -sL "FEED_URL" | sfeed | sfeed_html > feeds.html

# Copy style.css for better presentation
cp /opt/homebrew/Cellar/sfeed/*/share/doc/sfeed/style.css ./

OPML Import/Export

# Import from other readers (e.g., newsboat)
newsboat -e | sfeed_opml_import > ~/.sfeed/sfeedrc

# Export to OPML
sfeed_opml_export ~/.sfeed/feeds/* > subscriptions.opml

mbox Format for Email

# Convert feed to mbox format
curl -sL "FEED_URL" | sfeed | sfeed_mbox > feed.mbox

# Import to email client

Troubleshooting

  • SSL errors: Use curl -ksL instead of curl -sL
  • Encoding issues: Specify encoding in sfeedrc: feed "name" "url" "GB2312"
  • Debug: Run curl -sL "FEED_URL" | sfeed to see raw parsed output
  • Missing items: Check cache files in ~/.sfeed/feeds/
  • Man pages: man sfeed, man sfeed_update, man sfeedrc

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.