# Send RSS Feeds to your agent
Use the source page and any available docs to guide the install because the item currently does not return a direct package file.
## Fast path
- Open the source page via Open source listing.
- If you can obtain the package, extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the source page and extracted files.
## Suggested prompts
### New install

```text
I tried to install a skill package from Yavira, but the item currently does not return a direct package file. Inspect the source page and any extracted docs, then tell me what you can confirm and any manual steps still required. Then review README.md for any prerequisites, environment setup, or post-install checks.
```
### Upgrade existing

```text
I tried to upgrade a skill package from Yavira, but the item currently does not return a direct package file. Compare the source page and any extracted docs with my current installation, then summarize what changed and what manual follow-up I still need. Then review README.md for any prerequisites, environment setup, or post-install checks.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-rss-feeds",
    "name": "RSS Feeds",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/homeofe/openclaw-rss-feeds",
    "canonicalUrl": "https://clawhub.ai/homeofe/openclaw-rss-feeds",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/openclaw-rss-feeds",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-rss-feeds",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "catalog.yaml",
      "examples/full-config.json",
      "examples/minimal-config.json",
      "openclaw.plugin.json"
    ],
    "downloadMode": "manual_only",
    "sourceHealth": {
      "source": "tencent",
      "slug": "openclaw-rss-feeds",
      "status": "source_issue",
      "reason": "not_found",
      "recommendedAction": "review_source",
      "checkedAt": "2026-05-07T20:24:44.792Z",
      "expiresAt": "2026-05-08T20:24:44.792Z",
      "httpStatus": 404,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-rss-feeds",
      "contentType": "text/plain",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-rss-feeds",
        "contentDisposition": null,
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "openclaw-rss-feeds"
      },
      "scope": "item",
      "summary": "Known item issue.",
      "detail": "This item's current download entry is known to bounce back to a listing or homepage instead of returning a package file.",
      "primaryActionLabel": "Open source listing",
      "primaryActionHref": "https://clawhub.ai/homeofe/openclaw-rss-feeds"
    },
    "validation": {
      "installChecklist": [
        "Open the source listing and confirm there is a real package or setup artifact available.",
        "Review SKILL.md before asking your agent to continue.",
        "Treat this source as manual setup until the upstream download flow is fixed."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-rss-feeds",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-rss-feeds",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-rss-feeds/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-rss-feeds/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-rss-feeds/agent.md"
  }
}
```
## Documentation

### @elvatis_com/openclaw-rss-feeds

OpenClaw plugin for RSS and Atom security digests with optional NVD CVE enrichment, Ghost CMS draft publishing, and channel notifications.

### Installation

npm install @elvatis_com/openclaw-rss-feeds

Then enable the plugin in your OpenClaw plugin config.

### Configuration

The plugin schema is defined in openclaw.plugin.json.

Example with all supported options:

{
  "plugins": {
    "openclaw-rss-feeds": {
      "feeds": [
        {
          "id": "fortinet",
          "name": "Fortinet PSIRT",
          "url": "https://www.fortiguard.com/rss/ir.xml",
          "keywords": ["fortinet", "fortigate", "fortios"],
          "enrichCve": true,
          "cvssThreshold": 7,
          "tags": ["fortinet", "security", "digest"],
          "docsUrlTemplate": "https://docs.fortinet.com/product/{product}/{version}/release-notes",
          "productHighlightPattern": "Forti(?:Gate|OS|Analyzer|Manager|Client|Proxy)"
        },
        {
          "id": "m365",
          "name": "Microsoft 365 Message Center",
          "url": "https://www.microsoft.com/en-us/microsoft-365/roadmap?filters=&searchterms=&rss=1",
          "keywords": ["security", "vulnerability", "defender"],
          "enrichCve": true,
          "cvssThreshold": 6.5,
          "tags": ["microsoft-365", "security"]
        },
        {
          "id": "bsi",
          "name": "BSI CERT-Bund",
          "url": "https://wid.cert-bund.de/portal/wid/securityadvisory?rss",
          "keywords": ["kritisch", "critical", "cve"],
          "enrichCve": false,
          "tags": ["bsi", "cert-bund"]
        },
        {
          "id": "heise-security",
          "name": "Heise Security",
          "url": "https://www.heise.de/security/rss/news-atom.xml",
          "keywords": ["cve", "security", "ransomware"],
          "enrichCve": false,
          "tags": ["heise", "security-news"]
        }
      ],
      "schedule": "0 9 1 * *",
      "lookbackDays": 31,
      "ghost": {
        "url": "https://blog.example.com",
        "adminKey": "<ghost-admin-key-id>:<ghost-admin-key-secret-hex>"
      },
      "notify": [
        "whatsapp:<phone>",
        "telegram:123456789"
      ],
      "nvdApiKey": "<nvd-api-key-optional>"
    }
  }
}

### Automatic run via cron schedule

If schedule is set, the plugin registers a scheduler and runs automatically.

Example:

0 9 1 * * runs at 09:00 on day 1 of every month
0 8 * * 1 runs every Monday at 08:00

### Manual run via tool

You can trigger digest generation manually with the registered tool:

Tool name: rss_run_digest
Optional parameter: dryRun: true

dryRun fetches and formats the digest but skips Ghost publishing and notifications.

### CVE Enrichment

If a feed has enrichCve: true, the plugin calls the NVD CVE API and enriches the digest with:

CVE ID
CVSS score (filtered by cvssThreshold)
CVE description
Link to NVD details

Notes:

CVE enrichment is keyword-driven via each feed's keywords
Requests are rate-limited between keyword lookups
NVD failures are handled as non-fatal, feed processing continues

### Ghost CMS Integration

If ghost is configured, the digest is published as a draft post through the Ghost Admin API.

Implementation details:

HS256 JWT is generated from adminKey (id:secret format)
API endpoint: /ghost/api/admin/posts/?source=html
Digest is sent as HTML body
Tags are merged from all configured feed tags

If Ghost fails, digest generation still succeeds and the error is reported in result metadata and optional notifications.

### Notifications

If notify contains targets (format channel:target), a summary notification is sent after the run.

Example targets:

whatsapp:<phone>
telegram:123456789
discord:#security

### Development

npm install
npx tsc --noEmit
npm test
npm run build

### License

MIT
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: homeofe
- Version: 0.2.0
## Source health
- Status: source_issue
- Known item issue.
- This item's current download entry is known to bounce back to a listing or homepage instead of returning a package file.
- Health scope: item
- Reason: not_found
- Checked at: 2026-05-07T20:24:44.792Z
- Expires at: 2026-05-08T20:24:44.792Z
- Recommended action: Open source listing
## Links
- [Detail page](https://openagent3.xyz/skills/openclaw-rss-feeds)
- [Send to Agent page](https://openagent3.xyz/skills/openclaw-rss-feeds/agent)
- [JSON manifest](https://openagent3.xyz/skills/openclaw-rss-feeds/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/openclaw-rss-feeds/agent.md)
- [Download page](https://openagent3.xyz/downloads/openclaw-rss-feeds)