You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Configure RSS feed polling for NanoClaw channels. Adds rss.channels section to nanoclaw.yaml with per-channel feed URLs, and restarts the service. Triggers on "setup rss", "add rss", "rss feed", or "rss 配信".
4
+
---
5
+
6
+
# RSS Feed Setup
7
+
8
+
Add RSS feed polling to NanoClaw so new articles are automatically delivered to configured channels every 15 minutes.
9
+
10
+
## 1. Check Current Configuration
11
+
12
+
Read `nanoclaw.yaml` to see if an `rss` section already exists:
13
+
14
+
```bash
15
+
cat nanoclaw.yaml
16
+
```
17
+
18
+
If the file doesn't exist, create it with just the `rss` section. If it already has a `providers` section, add the `rss` section alongside it.
19
+
20
+
## 2. Ask User for Configuration
21
+
22
+
Use `AskUserQuestion` to ask:
23
+
24
+
1.**Which channel ID(s)** should receive RSS updates? (e.g., `dc:1234567890`)
25
+
2.**Which feed URLs?** — one or more RSS/Atom feed URLs to monitor.
26
+
27
+
## 3. Add RSS Section to nanoclaw.yaml
28
+
29
+
Add or update the `rss` section in `nanoclaw.yaml`. The structure is:
30
+
31
+
```yaml
32
+
rss:
33
+
channels:
34
+
- jid: "dc:1234567890"
35
+
feeds:
36
+
- url: "https://example.com/feed.xml"
37
+
name: "Example Blog"
38
+
- url: "https://another.example/rss"
39
+
```
40
+
41
+
- `jid`: The channel JID (must match a registered group in NanoClaw)
42
+
- `feeds[].url`: RSS/Atom feed URL (required)
43
+
- `feeds[].name`: Display name for the feed (optional, used in messages)
44
+
45
+
Use the Edit tool to insert the `rss` section. If `nanoclaw.yaml` already has content, add `rss` at the same level as `providers`.
46
+
47
+
## 4. Verify Channel Registration
48
+
49
+
Ensure the JIDs specified in the RSS config correspond to registered groups:
50
+
51
+
```bash
52
+
sqlite3 store/messages.db "SELECT jid, name, folder FROM registered_groups"
53
+
```
54
+
55
+
If a JID is not registered, RSS items for that channel will be skipped with a warning log. Register the channel first using the NanoClaw interface.
56
+
57
+
## 5. Restart NanoClaw
58
+
59
+
```bash
60
+
# macOS
61
+
launchctl kickstart -k gui/$(id -u)/com.nanoclaw
62
+
63
+
# Linux
64
+
systemctl --user restart nanoclaw
65
+
66
+
# Or manual restart
67
+
npm run dev
68
+
```
69
+
70
+
The RSS poller starts automatically on boot and checks for new articles every 15 minutes.
71
+
72
+
## 6. Verify It Works
73
+
74
+
Check the logs for RSS poller startup:
75
+
76
+
```bash
77
+
tail -f logs/nanoclaw.log | grep -i rss
78
+
```
79
+
80
+
You should see: `RSS poller started (15-minute interval)`and `RSS config loaded from nanoclaw.yaml`.
81
+
82
+
## Notes
83
+
84
+
- RSS items are tracked in the `rss_seen_items` SQLite table — restarts do not cause duplicate deliveries.
85
+
- The `guid` element is used as the unique item identifier, falling back to the article URL.
86
+
- Feed fetch failures are logged as warnings and do not crash the poller.
87
+
- To add or remove feeds, edit `nanoclaw.yaml` and restart. Config is re-read on each poll cycle.
0 commit comments