RSS/Atom feed reader and AI digest builder. Fetch feeds, store articles locally, generate AI-powered summaries. Works standalone or as an OpenClaw skill.
- keeps your feeds and articles in local SQLite
- ships with curated default feeds (AI, dev, news, OpenClaw ecosystem)
- fetches RSS and Atom feeds with conditional requests (etag / 304)
- generates AI-powered digests via Anthropic or OpenAI
- outputs as terminal, markdown, HTML, or JSON
- imports and exports OPML for feed migration
--jsonflag on most commands for agents and scripts
- Node 22+
- pnpm
ANTHROPIC_API_KEYorOPENAI_API_KEYfor digest generation- Windows: Visual Studio Build Tools (C++ workload) for native SQLite compilation
git clone https://github.com/psandis/feedclaw.git
cd feedclaw
pnpm install
pnpm buildAfter install and build:
pnpm cli init
pnpm cli fetch
pnpm cli digestSet your API key before running digest. See Configuration.
Default root:
~/.feedclaw/
Important paths:
- DB:
~/.feedclaw/feedclaw.db - Config:
~/.feedclaw/config.json
Override the root:
export FEEDCLAW_HOME=/path/to/custom/rootAll commands are run with pnpm cli <command>.
pnpm cli init
β MIT Technology Review
β OpenAI Blog
β Google AI Blog
β Hugging Face Blog
β Simon Willison
β Lil'Log (Lilian Weng)
β GitHub Blog
β Cloudflare Blog
β Stripe Engineering
β Meta Engineering
β Peter Steinberger (steipete)
β OpenClaw Newsletter
β Hacker News
β Techmeme
β Ars Technica
β The Verge
16 feeds added. Run fetch to pull articles.
Notes:
--bundle ai|dev|openclaw|news|allpicks a subset (default:all)--from my-feeds.jsonloads feeds from a custom JSON file- default feeds live in
feeds/default.jsonβ edit the file or submit a PR
pnpm cli add https://blog.rust-lang.org/feed.xml --category dev
pnpm cli remove 3
pnpm cli remove https://example.com/feed.xmlNotes:
--category <cat>sets the feed category (default:default)- remove accepts a feed ID or URL
pnpm cli list
[ai]
1 MIT Technology Review Β· fetched 2026-03-20 17:30:12
https://www.technologyreview.com/feed/
2 OpenAI News Β· fetched 2026-03-20 17:30:13
https://openai.com/blog/rss.xml
5 Simon Willison's Weblog Β· fetched 2026-03-20 17:30:12
https://simonwillison.net/atom/everything/
[dev]
7 The GitHub Blog Β· fetched 2026-03-20 17:30:12
https://github.blog/feed/
[openclaw]
11 Peter Steinberger Β· fetched 2026-03-20 17:30:12
https://steipete.me/rss.xml
Notes:
- titles are populated after first fetch
--category <cat>filters by category
pnpm cli fetch
β MIT Technology Review: 10 new
β OpenAI News: 891 new
β Simon Willison's Weblog: 30 new
β The GitHub Blog: 10 new
β The Cloudflare Blog: 20 new
β Hacker News: Front Page: 20 new
β Peter Steinberger: 107 new
β Openclaw Newsletter: 30 new
Notes:
--feed <id|url>fetches a single feed- uses etag and last-modified headers to skip unchanged feeds
pnpm cli digest --since 24h --category ai --format terminalNotes:
--since <duration>sets the time window:24h,7d,2w(default:24h)--category <cat>filters by category--provider anthropic|openaipicks the AI provider (default:anthropic)--model <model>overrides the model--format terminal|markdown|html|jsonsets the output format--max-articles <n>limits articles included (default:50)- only includes unread articles; marks them as read after generating
pnpm cli opml-import feeds.opml
pnpm cli opml-export > feeds.opml- run
initto load default feeds orinit --fromwith your own list - run
fetchto pull articles - run
digestto get an AI summary - add or remove feeds as needed
- run
fetchanddigeston a schedule
Optional config file at ~/.feedclaw/config.json:
{
"defaultProvider": "anthropic",
"defaultModel": "claude-sonnet-4-20250514",
"defaultFormat": "terminal",
"digestSince": "24h"
}Environment variables:
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
Anthropic API key for digest generation |
OPENAI_API_KEY |
OpenAI API key for digest generation |
FEEDCLAW_HOME |
Custom data directory (default: ~/.feedclaw/) |
# macOS / Linux
export ANTHROPIC_API_KEY=sk-ant-...
# Windows (cmd)
set ANTHROPIC_API_KEY=sk-ant-...
# Windows (PowerShell)
$env:ANTHROPIC_API_KEY="sk-ant-..."Most commands support --json for structured output (except opml-export which outputs OPML directly):
pnpm cli --json list
pnpm cli --json fetch
pnpm cli --json digest --format jsonOnce installed globally (npm install -g feedclaw), add a SKILL.md to your workspace:
---
name: feedclaw
description: Fetch RSS feeds and generate AI news digests
version: 1.0.0
requires_binaries:
- feedclaw
---
When the user asks about news, feeds, or digests, use the `feedclaw` CLI:
- To check feeds: `feedclaw --json fetch`
- To get a digest: `feedclaw --json digest --format markdown`
- To add a feed: `feedclaw --json add <url>`Default feeds live in feeds/default.json. Edit the file or submit a PR to add feeds.
| Bundle | Feeds |
|---|---|
ai |
MIT Technology Review, OpenAI, Google AI, Hugging Face, Simon Willison, Lil'Log |
dev |
GitHub Blog, Cloudflare, Stripe Engineering, Meta Engineering |
openclaw |
Peter Steinberger (steipete), OpenClaw Newsletter |
news |
Hacker News, Techmeme, Ars Technica, The Verge |
git clone https://github.com/psandis/feedclaw.git
cd feedclaw
pnpm install
pnpm build
pnpm test
pnpm lint
pnpm cli --helppnpm testCurrent bar:
- 28 tests across feeds, fetcher, and digest modules
- temp SQLite databases per test, cleaned up automatically
- π¦ Dustclaw β Find out what is eating your disk space
- π¦ Driftclaw β Deployment drift detection across environments
- π¦ OpenClaw β The open claw ecosystem
See MIT
