# Opml Reader

> Store OPML files and fetch latest posts across RSS/Atom feeds. Use when a user provides an OPML URL or file path, wants it saved under ~/Code/Files, or wants the newest entries aggregated across feeds (with optional JSON/TSV output, dedupe, and concurrency controls).

- **Type:** Skill
- **Install:** `agentstack add skill-ivancampos-agents-opml-reader`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [IvanCampos](https://agentstack.voostack.com/s/ivancampos)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [IvanCampos](https://github.com/IvanCampos)
- **Source:** https://github.com/IvanCampos/agents/tree/main/skills/opml-reader
- **Website:** https://ivancampos.com

## Install

```sh
agentstack add skill-ivancampos-agents-opml-reader
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# OPML Reader

## Overview
Use `scripts/opml_reader.py` to (1) store OPML from a URL and (2) list the latest posts across all feeds in the OPML. Output timestamps are ISO-8601 in UTC.

## Quick Start
1. Create a venv and install dependency:

```bash
python3 -m venv ~/Code/sandbox/.venv-opml-reader
~/Code/sandbox/.venv-opml-reader/bin/pip install feedparser
```

2. Store an OPML file:

```bash
~/Code/sandbox/.venv-opml-reader/bin/python scripts/opml_reader.py store \
  "https://example.com/feeds.opml" \
  "~/Code/Files/feeds.opml"
```

3. Fetch latest posts:

```bash
~/Code/sandbox/.venv-opml-reader/bin/python scripts/opml_reader.py latest \
  "~/Code/Files/feeds.opml" \
  --limit 5
```

## Workflow
- If the user supplies an OPML URL, store it under `~/Code/Files` using `store`.
- If the OPML file already exists, reuse it unless the user explicitly asks to overwrite.
- Run `latest` to aggregate posts and return the newest entries across feeds.
- Report partial results if some feeds fail (network timeouts are expected on large lists).

## Output Options
- Default output: `text` lines formatted as `index. title | feed | date | link`.
- Use `--format json` or `--format tsv` if the user needs machine-readable output.
- Dedupe is on by default. Use `--no-dedupe` if the user wants raw results.
- Adjust `--workers` and `--timeout` for large or slow feed lists.

## Resources
### scripts/
- `scripts/opml_reader.py`: Store OPML files and list latest posts across RSS/Atom feeds.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [IvanCampos](https://github.com/IvanCampos)
- **Source:** [IvanCampos/agents](https://github.com/IvanCampos/agents)
- **License:** MIT
- **Homepage:** https://ivancampos.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-ivancampos-agents-opml-reader
- Seller: https://agentstack.voostack.com/s/ivancampos
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
